mirror of
https://github.com/janishutz/libreevent.git
synced 2025-11-25 21:34:24 +00:00
update documentation
This commit is contained in:
@@ -174,3 +174,6 @@ module.exports.deleteJSONDataSimple = ( db, identifier ) => {
|
||||
} );
|
||||
} );
|
||||
};
|
||||
|
||||
// TODO: Build garbage collector for DB (parse DB every so often (get from settings)
|
||||
// and delete all items where timestamp is older than a certain amount of time (get from settings))
|
||||
@@ -1 +1,13 @@
|
||||
{"init":true,"twoFA":"enforce","setupKey":"hello world","twoFAMode":"enhanced","db":"mysql","payments":"stripe","name":"libreevent","yourDomain":"http://localhost:8080","mailSender":"libreevent <info@libreevent.janishutz.com>","maxTickets":10,"currency":"CHF"}
|
||||
{
|
||||
"init":true,
|
||||
"twoFA":"enforce",
|
||||
"setupKey":"hello world",
|
||||
"twoFAMode":"enhanced",
|
||||
"db":"mysql",
|
||||
"payments":"stripe",
|
||||
"name":"libreevent",
|
||||
"yourDomain":"http://localhost:8080",
|
||||
"mailSender":"libreevent <info@libreevent.janishutz.com>",
|
||||
"maxTickets":10,
|
||||
"currency":"CHF"
|
||||
}
|
||||
@@ -12,6 +12,21 @@ const md2html = new markdownIt();
|
||||
const fs = require( 'fs' );
|
||||
const path = require( 'path' );
|
||||
|
||||
console.log( `
|
||||
|
||||
_ _ _ _
|
||||
| (_) | | |
|
||||
| |_| |__ _ __ ___ _____ _____ _ __ | |_
|
||||
| | | '_ \\| '__/ _ \\/ _ \\ \\ / / _ \\ '_ \\| __|
|
||||
| | | |_) | | | __/ __/\\ V / __/ | | | |_
|
||||
|_|_|_.__/|_| \\___|\\___| \\_/ \\___|_| |_|\\__|
|
||||
|
||||
-------------------------------------------------------
|
||||
|
||||
==> Building the libreevent documentation!
|
||||
|
||||
` );
|
||||
|
||||
buildNav( buildDocs() );
|
||||
|
||||
|
||||
@@ -58,7 +73,7 @@ function buildNav ( pathObject ) {
|
||||
|
||||
fs.writeFileSync( path.join( __dirname + '/dist/docs/side-bar.html' ), html );
|
||||
|
||||
console.log( '\n\n==> Completed building website! \n\n' );
|
||||
console.log( ' ==> Successfully built documentation! \n\n' );
|
||||
}
|
||||
|
||||
function buildDocs () {
|
||||
|
||||
@@ -27,6 +27,12 @@
|
||||
<p>Describe what your event is about. It will be displayed underneath the event name when users are browsing your events. In the browsing view, the length of the description is limited to 150 characters, after which three dots will be added to the text and a 'continue reading' button will be added. Technically, there's no limit to the length of the event description, but don't overdo it with the length, as the user is unlikely to read more than a couple words anyway.</p>
|
||||
<h3>Event location</h3>
|
||||
<p>Choose a location where your event is going to take place. You can do so by selecting an existing location from the dropdown or by adding a new one. In the same step, you'll also need to choose between a seat plan and no seat plan, and if you choose a seat plan, you'll need to create one using out handy seatplan editor. See our seatplan editor guide <a href="/docs/admin-panel/seatplan-editor">here</a></p>
|
||||
<h2>Guest purchase</h2>
|
||||
<p>Choose if a user may purchase a ticket without creating an account. An email address is always required as the system sends the tickets via email to the customers for easier access.</p>
|
||||
<h2>Allow overbooking</h2>
|
||||
<p>Activate this and set a percentage of overbooking, if you want to enable overbooking of the event to ensure that every single spot is occupied even if somebody does not show up. Use is strongly discouraged and currently only works with events that have no seating plan.</p>
|
||||
<h2>Special requirements</h2>
|
||||
<p>Here you may set a special requirement that a person booking a ticket has to fulfill, like the email address has to be ending in @yourdomain.com or they need to live in a certain street / town / city / country in order for them to be allowed to buy a ticket. You may also require that they provide a certain number, code or similar. Finally, you may choose to limit the amount of tickets a single person may reserve.</p>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
|
||||
|
||||
27
website/dist/docs/admin-panel/locations/index.html
vendored
Normal file
27
website/dist/docs/admin-panel/locations/index.html
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Locations :: docs - libreevent</title>
|
||||
<link rel="stylesheet" href="/docs/css/style.css">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta charset="utf-8">
|
||||
<meta name="description" content="Looking for a free and open source event management solution you can host yourself? libreevent is a project that does exactly that.">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/dark.min.css">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js"></script>
|
||||
<script>hljs.highlightAll();</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="nav"></div>
|
||||
<div id="side-bar"></div>
|
||||
<div id="backToTop" onclick="backToTop();"></div>
|
||||
<div id="docPage">
|
||||
<div id="doc-container">
|
||||
<h1>Locations</h1>
|
||||
<p>libreevent allows you to create an infinite amount of locations where you can host events in. These locations all can have a seat plan - or not. This is entirely your choice. You may use libreevent's powerful seat plan editor to edit the seat plan if you choose to add one. All of the locations can be assigned to one or multiple events such that you do not waste any time creating seat plans when it is not necessary.</p>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
|
||||
<script src="/docs/js/index.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -18,6 +18,7 @@
|
||||
<div id="docPage">
|
||||
<div id="doc-container">
|
||||
<h1>Pages</h1>
|
||||
<p>With the page editor you can easily create the start page (the landing page, so the page that gets displayed when the user visits the website). You may select one of a few templates which you can choose [here](TODO: ADD LINK). Then you should upload the promotional text and a few images. The image count depends on the template selected. If you want to use a more feature rich start page, please consider moving libreevent to a sub-domain and building a complete website on the main domain. You can get beautiful fully custom websites built for you <a href="https://development.janishutz.com">here</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
<div id="docPage">
|
||||
<div id="doc-container">
|
||||
<h1>Plugins</h1>
|
||||
<p>libreevent can be extended easily with plugins. Plugins add additional features and can be official or community made. You can see which plugins are official by their badge. When installing plugins, you need to remember that a server restart is required to activate the plugins as libreevent does not feature hot module loading (yet). You then can manage the plugins using their built-in settings page that they ship with.</p>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
|
||||
|
||||
@@ -28,14 +28,45 @@
|
||||
<p>This setting can be changed individually for admin and user accounts and 2FA can be disabled entirely. It is highly encouraged to enable this at least for the admin accounts and for user accounts set the requirement to 'User-defined' or 'Always required' instead of 'Disabled'.</p>
|
||||
<h2>User account passwords</h2>
|
||||
<p>Here you may set password requirements for the user accounts. The system will always be offering the users to generate a password that is strong for them to facilitate the process of setting a password.</p>
|
||||
<h2>Guest purchase</h2>
|
||||
<p>Choose if a user may purchase a ticket without creating an account. An email address is always required as the system sends the tickets via email to the customers for easier access.</p>
|
||||
<h2>Allow overbooking</h2>
|
||||
<p>Activate this and set a percentage of overbooking, if you want to enable overbooking of the event to ensure that every single spot is occupied even if somebody does not show up. Use is strongly discouraged and currently only works with events that have no seating plan.</p>
|
||||
<h2>Special requirements</h2>
|
||||
<p>Here you may set a special requirement that a person booking a ticket has to fulfill, like the email address has to be ending in @yourdomain.com or they need to live in a certain street / town / city / country in order for them to be allowed to buy a ticket. You may also require that they provide a certain number, code or similar. Finally, you may choose to limit the amount of tickets a single person may reserve.</p>
|
||||
<h2>Change organisation name</h2>
|
||||
<p>This should be self explanatory, but keep in mind that this change will only take effect after the next restart of the node app.</p>
|
||||
<h1>Admin Accounts</h1>
|
||||
<p>On this page you may add, modify or remove admin accounts. Note that in order for you to see this page, you'll need to be logged in as the user root.</p>
|
||||
<h2>Adding an account</h2>
|
||||
<h3>Privileges</h3>
|
||||
<p>libreevent features a privilege system where you can choose to what group of users you want to add a user you are currently creating. Possible values are:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Group</th>
|
||||
<th>Allowed settings</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Root</td>
|
||||
<td>All pages. Can only be one account (the root account)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Admin</td>
|
||||
<td>Can access all pages and settings except for Admin Accounts</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Event-Manager</td>
|
||||
<td>Access the events & pages page</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Event-Handler</td>
|
||||
<td>Can log into the apps to do entry control</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3>Email</h3>
|
||||
<p>An Email address is required for account activation and to recover a password in case it gets lost. The system will automatically send an activation email so the user can confirm that the email address is valid.</p>
|
||||
<h3>2FA</h3>
|
||||
<p>With this checkbox you can choose if this user needs to do two factor authentication, meaning, if the user needs to authorise the login using a link. In the <a href="/docs/admin-panel/settings#2fa">Settings</a> you may choose between the two different 2FA modes that libreevent offers.</p>
|
||||
<h2>Modifying an account</h2>
|
||||
<h2>Removing an account</h2>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
|
||||
|
||||
26
website/dist/docs/contributing/code-of-conduct/index.html
vendored
Normal file
26
website/dist/docs/contributing/code-of-conduct/index.html
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Code of Conduct :: docs - libreevent</title>
|
||||
<link rel="stylesheet" href="/docs/css/style.css">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta charset="utf-8">
|
||||
<meta name="description" content="Looking for a free and open source event management solution you can host yourself? libreevent is a project that does exactly that.">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/dark.min.css">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js"></script>
|
||||
<script>hljs.highlightAll();</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="nav"></div>
|
||||
<div id="side-bar"></div>
|
||||
<div id="backToTop" onclick="backToTop();"></div>
|
||||
<div id="docPage">
|
||||
<div id="doc-container">
|
||||
<h1>Code of Conduct</h1>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
|
||||
<script src="/docs/js/index.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
26
website/dist/docs/contributing/design-guidelines/index.html
vendored
Normal file
26
website/dist/docs/contributing/design-guidelines/index.html
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Design Guidelines :: docs - libreevent</title>
|
||||
<link rel="stylesheet" href="/docs/css/style.css">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta charset="utf-8">
|
||||
<meta name="description" content="Looking for a free and open source event management solution you can host yourself? libreevent is a project that does exactly that.">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/dark.min.css">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js"></script>
|
||||
<script>hljs.highlightAll();</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="nav"></div>
|
||||
<div id="side-bar"></div>
|
||||
<div id="backToTop" onclick="backToTop();"></div>
|
||||
<div id="docPage">
|
||||
<div id="doc-container">
|
||||
<h1>Design Guidelines</h1>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
|
||||
<script src="/docs/js/index.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -18,6 +18,16 @@
|
||||
<div id="docPage">
|
||||
<div id="doc-container">
|
||||
<h1>Contributing Plugins</h1>
|
||||
<p>If you wish to contribute plugins and have them accepted into the official repository then your plugin has to:</p>
|
||||
<ul>
|
||||
<li>fulfill the code layout requirements given by the linter config</li>
|
||||
<li>follow the libreevent <a href="/docs/contributing/design-guidelines">design guidelines</a></li>
|
||||
<li>conform to our <a href="/docs/contributing/code-of-conduct">code of conduct</a></li>
|
||||
<li>not contain any immediately obvious flaws (as layed out in the code of conduct), be it in terms of security or reliability</li>
|
||||
<li>provide all necessary files for libreevent</li>
|
||||
<li>offer settings if possible and necessary and a way to graphically edit them</li>
|
||||
<li>have extensive documentation on its usage. Once accepted into the official repos, the documentation will be added to the official documentation.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
|
||||
|
||||
13
website/dist/docs/payments/index.html
vendored
13
website/dist/docs/payments/index.html
vendored
@@ -18,15 +18,14 @@
|
||||
<div id="docPage">
|
||||
<div id="doc-container">
|
||||
<h1>Payments</h1>
|
||||
<p>Including many payment methods can help the user choose the one that fits them best, but can also be overwhelming and a pain to set up. So please try to use as few different payment gateways as possible. Our recommendation is either <em>Stripe</em> or <em>adyen</em> as they are the most flexible.</p>
|
||||
<p>Including many payment methods can help the user choose the one that fits them best, but can also be overwhelming and a pain to set up. So please try to use as few different payment gateways as possible. Officially, libreevent supports <em>Stripe</em> and <em>Payrexx</em>. More payment gateways might come in the future as a plugin which can be installed by following our guide <a href="/docs/plugins/install#payments">here</a></p>
|
||||
<h2>Advantages / Disadvantages of each payment gateway</h2>
|
||||
<h3>Stripe</h3>
|
||||
<p>Stripe is one of the most well known payment gateways out there, but is also fairly expensive, but easy to set up.
|
||||
See <a href="https://stripe.com/en-gb/pricing">here</a> for pricing information and sign up <a href="https://dashboard.stripe.com/register">here</a></p>
|
||||
<h3>adyen</h3>
|
||||
<p>Adyen is used by small and huge businesses alike, but you have to email their support team for account creation, which is easy to do, but takes longer to complete. adyen is fairly cheap, "<em>only</em>" charging 0.10$ per transaction plus payment method costs. Detailed pricing information can be found <a href="https://www.adyen.com/pricing">here</a> and you may sign up <a href="https://www.adyen.com/contact/sales">here</a></p>
|
||||
<h3>payrexx</h3>
|
||||
<p>https://www.payrexx.com/en/pricing/</p>
|
||||
<p>Payrexx is a Swiss, lesser known payment gateway and it is not ideal for you if you expect to have a low sales volume, as their basic plan costs you EUR 15 a month. If your sales volume is fairly high, it may be worth it as their per-transaction fees are quite a bit lower than Stripe's and they offer more payment options.
|
||||
See payrexx <a href="https://www.payrexx.com/en/pricing/">pricing here</a> and sign up <a href="https://signup.payrexx.com">here</a>. You can find a full list of supported payment methods <a href="https://payrexx.com/en/paymentmethods">here</a></p>
|
||||
<h3>Stripe</h3>
|
||||
<p>Stripe is one of the most well known payment gateways out there and it is really easy to get started. See all their payment methods <a href="https://stripe.com/en-ch/payments/payment-methods">here</a>. If you choose to use Stripe, you may follow their guides on how to set up more payment options <a href="https://stripe.com/docs/payments/payment-methods/overview">here</a>
|
||||
See <a href="https://stripe.com/en-gb/pricing">here</a> for pricing information and sign up <a href="https://dashboard.stripe.com/register">here</a></p>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
|
||||
|
||||
26
website/dist/docs/plugins/installation/index.html
vendored
Normal file
26
website/dist/docs/plugins/installation/index.html
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Plugin installation :: docs - libreevent</title>
|
||||
<link rel="stylesheet" href="/docs/css/style.css">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta charset="utf-8">
|
||||
<meta name="description" content="Looking for a free and open source event management solution you can host yourself? libreevent is a project that does exactly that.">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/dark.min.css">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js"></script>
|
||||
<script>hljs.highlightAll();</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="nav"></div>
|
||||
<div id="side-bar"></div>
|
||||
<div id="backToTop" onclick="backToTop();"></div>
|
||||
<div id="docPage">
|
||||
<div id="doc-container">
|
||||
<h1>Plugin installation</h1>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
|
||||
<script src="/docs/js/index.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
29
website/dist/docs/setup/installation/index.html
vendored
29
website/dist/docs/setup/installation/index.html
vendored
@@ -18,9 +18,9 @@
|
||||
<div id="docPage">
|
||||
<div id="doc-container">
|
||||
<h1>Installation</h1>
|
||||
<p>Let's begin with setting up libreevent! If you are not technically savvy or want somebody else to set it up for you, please contact me <a href="https://api.janishutz.com/contact/setup?origin=libreevent&campaign=installation-docs">here</a>. If you want to set it up yourself, read on below!</p>
|
||||
<p>Let's begin with setting up libreevent! If you are not technically savvy or want somebody else to set it up for you, please contact me <a href="https://api.janishutz.com/contact/setup?origin=libreevent&campaign=installation-docs">here</a>. If you want to set it up yourself, read on below! Soon, there will also be a video tutorial available.</p>
|
||||
<h1>Selecting a webhosting company</h1>
|
||||
<p>Choosing the right hosting provider is not easy, especially since libreevent requires node.js. Therefore, we've listed a few really good options. This website here is hosted by asurahosting. <em>Note: I may receive a small commission when you buy webhosting using one of the links provided below. This won't affect the price you pay.</em>
|
||||
<p>Choosing the right hosting provider is not easy, especially since libreevent requires node.js. Therefore, we've listed a few really good options. Whatever hosting provider you end up going with, it is important that they explicitly list Node.js as a feature of that hosting account. All hosting providers below also include MySQL which is beneficial to have and a must-have when you are expecting to sell a lot of tickets simultaneously. This website here is hosted by asurahosting. <em>Note: I may receive a small commission when you buy webhosting using one of the links provided below. This won't affect the price you pay.</em>
|
||||
https://clients.asurahosting.com/aff.php?aff=1997
|
||||
https://www.novatrend.ch/en/
|
||||
https://www.hostinger.com/
|
||||
@@ -31,17 +31,36 @@ https://www.digitalocean.com/</p>
|
||||
https://affiliates.hostinger.com/users/signup/
|
||||
https://www.a2hosting.com/about/affiliate-program/
|
||||
https://www.digitalocean.com/go/affiliates</p>
|
||||
<h1>Downloading libreevent</h1>
|
||||
<p>We are going to start off by downloading libreevent. On this website, open the navigation menu and head to "Downloads". (We would strongly suggest that you open the link in a new tab by right clicking on the link and hitting "Open in new tab"). Below, hit the download button. This will download a production ready build of libreevent as a zip file. Save it to any convenient location. Head there and extract the zip-Archive (On windows, right click, extract; On MacOS, just double click; on Linux, there is either a zip utility installed or otherwise use the unzip utility in the terminal).</p>
|
||||
<h2>Database</h2>
|
||||
<p>In the database, all the userdata is stored. libreevent currently supports two different databases, MySQL and a custom database based on JSON. Which one to choose?</p>
|
||||
<p>TODO: Make it so that it's not necessary to mention this here.
|
||||
In the database, all the userdata is stored. libreevent currently supports two different databases, MySQL and a custom database based on JSON. Which one to choose?</p>
|
||||
<p>Generally MySQL, except:</p>
|
||||
<ul>
|
||||
<li>If your organisation is small and does only sell a few tickets at a time, the JSON based database works perfectly fine.</li>
|
||||
<li>Your web hosting plan does not includes MySQL and you've got no access to MySQL in any other way. <em>NOTE: Free MySQL services should NEVER be used in such an application, as most hosting plans include MySQL which is much more reliable and if you lose access to the database, you can only access the root account and all other data (and therefore all user accounts) is lost.</em></li>
|
||||
<li>Your web hosting plan does not includes MySQL and you've got no access to MySQL in any other way. <em>NOTE: Free MySQL services should NEVER be used in such an application, as most hosting plans include MySQL (or MariaDB, which works similarly) which is much more reliable and if you lose access to the database, you can only access the root account and all other user data (and therefore all user accounts) is lost. The event data is always stored in JSON format as it is more efficient this way.</em></li>
|
||||
</ul>
|
||||
<p>MySQL generally is more difficult to set up, but we'll run you through the process here to make the process easier for you. If you chose the JSON based database, skip ahead to the next chapter.</p>
|
||||
<p><strong>NOTE: The JSON database is really slow and should only be used if you have a small event where you expect to sell less than 5 ticket per minute! The amount of tickets sold per minute that the system can handle really depends on the speed of the server the website runs on.</strong></p>
|
||||
<p>MySQL generally is more time consuming to set up, but we'll run you through the process here to make the process easier for you.</p>
|
||||
<p>If you are using the JSON-DB, continue reading:</p>
|
||||
<p>Head into the folder you have downloaded libreevent into and open the "config" directory. In there you can see a few ".json" files. Open the "settings.config.json" file using a text editor (on Windows you could use Notepad, on MacOS TextEdit and on Linux, I personally like to use Nano or Vim, which are cli only or for graphical ones, use for example gedit).</p>
|
||||
<p>In JSON, data is stored in so-called Key-Value-Pairs. Look for "db" in there and and replace the default "mysql" with "json". Keep this file and folder open and skip the next chapter.</p>
|
||||
<h2>Setting up a MySQL database</h2>
|
||||
<p>At this point, we assume that you have already purchased webhosting and you are logged in to the administration panel of your webhosting provider. This guide will use the Web Control Panel called "Direct Admin", as it is fairly common, along with cPanel. Somewhere, there should be a button that says something like "MySQL Management". Click it, which will bring you to the MySQL-Database management page. Now, create a new database by clicking the "Create new database" (or similar) button which will bring up the database creation tool. Give the database any name you like and give the user any name you like. When creating a password, it is important that this password is long and complicated. What we recommend doing is using a password generator or to essentially "sit" onto your keyboard to get a random string of characters as the password.</p>
|
||||
<p>TODO: Make setup better (including db setup)
|
||||
Now copy this password and open the download location of libreevent. Inside of the libreevent folder and open the "config" folder and open the file called "db.config.json" using a text editor (on Windows you could use Notepad, on MacOS TextEdit and on Linux, I personally like to use Nano or Vim, which are cli only or for graphical ones, use for example gedit). Now, paste the password between the empty quotes after "password". For the host value type your domain, for the "database" parameter, type the name of the database you just created (including any prefixes shown there) and for the database user, type the username you just created (again, including any prefixes shown in the admin panel).</p>
|
||||
<p>Now hit "Create Database" to actually create the database.</p>
|
||||
<p>And just like that, you have finished setting up your database.</p>
|
||||
<h1>Uploading libreevent</h1>
|
||||
<p>It is now time to upload libreevent to your webhosting account. The recommended way of doing this is to download a FTP client like "FileZilla" and to connect to the hosting account in that way using the credentials provided by the hosting provider. In this guide we assume you use this way. Download and install FileZilla. It is a free and open source FTP client. Open it and you will see a few empty fields towards the top of the app. There you will need to fill in the information given by your hosting provider. Usually, the Host is ftp.yourDomain.com, the username and password are usually your admin account credentials and the port is usually 25552 or can be left empty. Then hit quick connect. At this point, a SSL warning might appear, as the certificate might not (yet) be configured correctly to also include FTP. Accept the certificate and you should be connected. Now create a new folder called "libreevent" by right clicking onto the empty space on the right pane (where it says "remote site") and selecting "create directory". Then on the left side (where it says "local side" navigate to the extracted libreevent folder and upload its contents by selecting it and right clicking to hitting "Upload"). Once that process is completed, you should be set to go to the next session.</p>
|
||||
<h2>npm install</h2>
|
||||
<p>This project relies on a variety of different node.js modules that need to be installed on the server. Most webhosting providers give you an easy way to run <em>npm install</em>. If not, you might be required to upload the <em>node_modules</em> folder yourself. You can create such a folder either by downloading the <em>node_modules.zip</em> folder from the GitHub releases page or by installing npm on your local machine and then by running <em>npm i</em> in the terminal.</p>
|
||||
<p>To set up the node application in most hosting providers, head to the admin panel of your hosting account once again. Navigate to the main page and scroll down until you find something that says "Setup Node.js App". Click it and wait for it to load. Click "Create Application" and select the newest available Node.js version and set the Application mode to "Production". For the application root insert the directory name which you have created just before when uploading.</p>
|
||||
<p>For the Application URL field, click onto "Choose any value" and select an appropriate domain.</p>
|
||||
<p>For the Application startup file type "app.js".</p>
|
||||
<p>In the section "Environment variables" hit "Add Variable" and in the appearing fields type beneath "Name" the following: "PORT" (without the quotes!) and under "Value" "8080" (again without quotes). Then hit done and at the top "create". If you end up on the start page again, hit the little pencil icon to get to the application editor. Scroll down to the "Detected configuration files" section and click "Run NPM Install". Once it shows a success message (at the top!), hit "Restart".</p>
|
||||
<p>CONGRATULATIONS! You are all set with the installation of libreevent! Now open a new tab in your webbrowser and type your domain name!</p>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
|
||||
|
||||
26
website/dist/docs/setup/security/index.html
vendored
Normal file
26
website/dist/docs/setup/security/index.html
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Security best practices :: docs - libreevent</title>
|
||||
<link rel="stylesheet" href="/docs/css/style.css">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta charset="utf-8">
|
||||
<meta name="description" content="Looking for a free and open source event management solution you can host yourself? libreevent is a project that does exactly that.">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/dark.min.css">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js"></script>
|
||||
<script>hljs.highlightAll();</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="nav"></div>
|
||||
<div id="side-bar"></div>
|
||||
<div id="backToTop" onclick="backToTop();"></div>
|
||||
<div id="docPage">
|
||||
<div id="doc-container">
|
||||
<h1>Security best practices</h1>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
|
||||
<script src="/docs/js/index.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
3
website/dist/docs/setup/update/index.html
vendored
3
website/dist/docs/setup/update/index.html
vendored
@@ -18,7 +18,8 @@
|
||||
<div id="docPage">
|
||||
<div id="doc-container">
|
||||
<h1>Updating</h1>
|
||||
<p>Updating libreǝvent is important to keep it secure, performant and bug-free. You can update libreevent automatically using the update tool on the settings page in the admin panel. The tool will automatically fetch all files that have been changed since the last version update. For this, it will have to make a webrequest to GitHub to fetch the JSON file with the update information. After that, many webrequests have to be performed to GitHub to download the new version. Before installing, the tool will show you the full changelog of the new version of libreevent. After the install has completed, you will need to restart libreevent such that the changes can be applied.</p>
|
||||
<p>Updating libreǝvent is important to keep it secure, performant and bug-free. Currently, updating libreevent involves manually uploading the new files.</p>
|
||||
<p><strong>IMPORTANT: make sure to ALWAYS download the data and config directories before updating to not lose any data in case something goes wrong! When uploading, do NOT upload the data and config directories except the release note tell you anything else. Please also always follow any notes detailed in the release notes.</strong></p>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
|
||||
|
||||
7
website/dist/docs/side-bar.html
vendored
7
website/dist/docs/side-bar.html
vendored
@@ -11,8 +11,8 @@
|
||||
<a class="side-nav-item" id="docs-home" href="/docs">Home</a><a class="side-nav-item" id="admin-panelNav" onclick="toggleList( 'admin-panel' );">Admin-panel</a>
|
||||
<div class="side-dropdown" id="admin-panel-dropdown">
|
||||
<a class="side-nav-subitem" id="admin-panel" href="/docs/admin-panel">Home</a>
|
||||
<a class="side-nav-subitem" id="admin-panel-admin-accounts" href="/docs/admin-panel/admin-accounts">Admin Accounts</a>
|
||||
<a class="side-nav-subitem" id="admin-panel-events" href="/docs/admin-panel/events">Events</a>
|
||||
<a class="side-nav-subitem" id="admin-panel-locations" href="/docs/admin-panel/locations">Locations</a>
|
||||
<a class="side-nav-subitem" id="admin-panel-pages" href="/docs/admin-panel/pages">Pages</a>
|
||||
<a class="side-nav-subitem" id="admin-panel-plugins" href="/docs/admin-panel/plugins">Plugins</a>
|
||||
<a class="side-nav-subitem" id="admin-panel-seatplan-editor" href="/docs/admin-panel/seatplan-editor">Seatplan editor</a>
|
||||
@@ -21,6 +21,8 @@
|
||||
<a class="side-nav-item" id="contributingNav" onclick="toggleList( 'contributing' );">Contributing</a>
|
||||
<div class="side-dropdown" id="contributing-dropdown">
|
||||
<a class="side-nav-subitem" id="contributing" href="/docs/contributing">Getting Started</a>
|
||||
<a class="side-nav-subitem" id="contributing-code-of-conduct" href="/docs/contributing/code-of-conduct">Code of Conduct</a>
|
||||
<a class="side-nav-subitem" id="contributing-design-guidelines" href="/docs/contributing/design-guidelines">Design Guidelines</a>
|
||||
<a class="side-nav-subitem" id="contributing-plugins" href="/docs/contributing/plugins">Contributing Plugins</a>
|
||||
</div>
|
||||
<a class="side-nav-item" id="errors" href="/docs/errors">Errors</a>
|
||||
@@ -29,12 +31,13 @@
|
||||
<a class="side-nav-item" id="pluginsNav" onclick="toggleList( 'plugins' );">Plugins</a>
|
||||
<div class="side-dropdown" id="plugins-dropdown">
|
||||
<a class="side-nav-subitem" id="plugins" href="/docs/plugins">Plugins</a>
|
||||
<a class="side-nav-subitem" id="plugins-list-of-plugins" href="/docs/plugins/list-of-plugins">List of plugins</a>
|
||||
<a class="side-nav-subitem" id="plugins-installation" href="/docs/plugins/installation">Plugin installation</a>
|
||||
</div>
|
||||
<a class="side-nav-item" id="setupNav" onclick="toggleList( 'setup' );">Setup</a>
|
||||
<div class="side-dropdown" id="setup-dropdown">
|
||||
<a class="side-nav-subitem" id="setup" href="/docs/setup">Getting Started</a>
|
||||
<a class="side-nav-subitem" id="setup-installation" href="/docs/setup/installation">Installation</a>
|
||||
<a class="side-nav-subitem" id="setup-security" href="/docs/setup/security">Security best practices</a>
|
||||
<a class="side-nav-subitem" id="setup-setup" href="/docs/setup/setup">Setup of libreevent</a>
|
||||
<a class="side-nav-subitem" id="setup-update" href="/docs/setup/update">Updating</a>
|
||||
</div>
|
||||
|
||||
@@ -18,11 +18,11 @@
|
||||
<div id="docPage">
|
||||
<div id="doc-container">
|
||||
<h1>Systemrequirements</h1>
|
||||
<p>libreevent's system requirements are low, you only need a PC or Server that can run node.js and is able to install npm packages. If the system you are trying to use is unable to download npm packages, you may download the packages on your own system and upload them together with the rest of the server files. How to do that is described in greater detail in the <a href="/docs/gettingStarted">Getting Started guide</a>.</p>
|
||||
<p>libreevent's system requirements are low, you only need a PC or Server that can run node.js and is able to install npm packages. If the system you are trying to use is unable to download npm packages, you may download the packages on your own system and upload them together with the rest of the server files. How to do that is described in greater detail in the <a href="/docs/setup/installation">Getting Started guide</a>.</p>
|
||||
<h2>node.js</h2>
|
||||
<p>Your system needs to be able to run node.js V > 12.0 and must have access to either npm or the downloaded npm packages.</p>
|
||||
<p>Your system needs to be able to run node.js V > 16.0 and must have access to either npm or the downloaded npm packages.</p>
|
||||
<h2>Hardware requirements</h2>
|
||||
<p>Hardware requirements solely depend on the amount of usage it is going to get. An average hosting plan should be able to handle about 1000 people. In case the system is not able to uphold the traffic, it will activate a protection to try and stop overloading and crashing the system. Although using multiple checks, we cannot guarantee that the system will never crash due to being overloaded, so, if the website is important, please overspec the server.</p>
|
||||
<p>Hardware requirements solely depend on the amount of usage it is going to get. A cheap hosting plan should be able to handle about 100 simultaneous people. Failing to meet the CPU recommendation may lead to slow response times when a lot of people try to connect to the server at once. A good way to mitigate this problem is to use cloudflare's DDOS protection or rate limiting feature. Follow their official guide <a href="https://developers.cloudflare.com/waf/rate-limiting-rules/best-practices/">here</a> on how to set it up. Many hosting providers already use Cloudflare and you may have settings for cloudflare already enabled. Otherwise, <a href="https://dash.cloudflare.com/sign-up?lang=en-US">create a cloudflare account</a> and update your website's DNS records to instead of directly pointing to your webserver to point to Cloudflare's DNS where you can re-add the DNS records that were previously configured in your hosting provider's DNS. For more information see <a href="/docs/setup/security">Security best practices</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
|
||||
|
||||
2
website/src/plugins/installation.md
Normal file
2
website/src/plugins/installation.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# Plugin installation
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
# List of plugins
|
||||
|
||||
This list of plugins contains all official plugins of libreevent. For a more up-to-date version of this list, please check your
|
||||
|
||||
##
|
||||
@@ -1,9 +1,9 @@
|
||||
# Installation
|
||||
Let's begin with setting up libreevent! If you are not technically savvy or want somebody else to set it up for you, please contact me [here](https://api.janishutz.com/contact/setup?origin=libreevent&campaign=installation-docs). If you want to set it up yourself, read on below!
|
||||
Let's begin with setting up libreevent! If you are not technically savvy or want somebody else to set it up for you, please contact me [here](https://api.janishutz.com/contact/setup?origin=libreevent&campaign=installation-docs). If you want to set it up yourself, read on below! Soon, there will also be a video tutorial available.
|
||||
|
||||
|
||||
# Selecting a webhosting company
|
||||
Choosing the right hosting provider is not easy, especially since libreevent requires node.js. Therefore, we've listed a few really good options. This website here is hosted by asurahosting. *Note: I may receive a small commission when you buy webhosting using one of the links provided below. This won't affect the price you pay.*
|
||||
Choosing the right hosting provider is not easy, especially since libreevent requires node.js. Therefore, we've listed a few really good options. Whatever hosting provider you end up going with, it is important that they explicitly list Node.js as a feature of that hosting account. All hosting providers below also include MySQL which is beneficial to have and a must-have when you are expecting to sell a lot of tickets simultaneously. This website here is hosted by asurahosting. *Note: I may receive a small commission when you buy webhosting using one of the links provided below. This won't affect the price you pay.*
|
||||
https://clients.asurahosting.com/aff.php?aff=1997
|
||||
https://www.novatrend.ch/en/
|
||||
https://www.hostinger.com/
|
||||
@@ -16,18 +16,53 @@ https://affiliates.hostinger.com/users/signup/
|
||||
https://www.a2hosting.com/about/affiliate-program/
|
||||
https://www.digitalocean.com/go/affiliates
|
||||
|
||||
|
||||
# Downloading libreevent
|
||||
We are going to start off by downloading libreevent. On this website, open the navigation menu and head to "Downloads". (We would strongly suggest that you open the link in a new tab by right clicking on the link and hitting "Open in new tab"). Below, hit the download button. This will download a production ready build of libreevent as a zip file. Save it to any convenient location. Head there and extract the zip-Archive (On windows, right click, extract; On MacOS, just double click; on Linux, there is either a zip utility installed or otherwise use the unzip utility in the terminal).
|
||||
|
||||
## Database
|
||||
|
||||
TODO: Make it so that it's not necessary to mention this here.
|
||||
In the database, all the userdata is stored. libreevent currently supports two different databases, MySQL and a custom database based on JSON. Which one to choose?
|
||||
|
||||
Generally MySQL, except:
|
||||
- If your organisation is small and does only sell a few tickets at a time, the JSON based database works perfectly fine.
|
||||
- Your web hosting plan does not includes MySQL and you've got no access to MySQL in any other way. *NOTE: Free MySQL services should NEVER be used in such an application, as most hosting plans include MySQL which is much more reliable and if you lose access to the database, you can only access the root account and all other user data (and therefore all user accounts) is lost. The event data is always stored in JSON format as it is more efficient.*
|
||||
- Your web hosting plan does not includes MySQL and you've got no access to MySQL in any other way. *NOTE: Free MySQL services should NEVER be used in such an application, as most hosting plans include MySQL (or MariaDB, which works similarly) which is much more reliable and if you lose access to the database, you can only access the root account and all other user data (and therefore all user accounts) is lost. The event data is always stored in JSON format as it is more efficient this way.*
|
||||
|
||||
**NOTE: The JSON database is really slow and should only be used if you have a small event where you expect to sell less than 5 ticket per minute! The amount of tickets sold per minute that the system can handle really depends on the speed of the server the website runs on.**
|
||||
|
||||
MySQL generally is more difficult to set up, but we'll run you through the process here to make the process easier for you. If you chose the JSON based database, skip ahead to the next chapter.
|
||||
MySQL generally is more time consuming to set up, but we'll run you through the process here to make the process easier for you.
|
||||
|
||||
If you are using the JSON-DB, continue reading:
|
||||
|
||||
Head into the folder you have downloaded libreevent into and open the "config" directory. In there you can see a few ".json" files. Open the "settings.config.json" file using a text editor (on Windows you could use Notepad, on MacOS TextEdit and on Linux, I personally like to use Nano or Vim, which are cli only or for graphical ones, use for example gedit).
|
||||
|
||||
In JSON, data is stored in so-called Key-Value-Pairs. Look for "db" in there and and replace the default "mysql" with "json". Keep this file and folder open and skip the next chapter.
|
||||
|
||||
|
||||
## Setting up a MySQL database
|
||||
At this point, we assume that you have already purchased webhosting and you are logged in to the administration panel of your webhosting provider. This guide will use the Web Control Panel called "Direct Admin", as it is fairly common, along with cPanel. Somewhere, there should be a button that says something like "MySQL Management". Click it, which will bring you to the MySQL-Database management page. Now, create a new database by clicking the "Create new database" (or similar) button which will bring up the database creation tool. Give the database any name you like and give the user any name you like. When creating a password, it is important that this password is long and complicated. What we recommend doing is using a password generator or to essentially "sit" onto your keyboard to get a random string of characters as the password.
|
||||
|
||||
TODO: Make setup better (including db setup)
|
||||
Now copy this password and open the download location of libreevent. Inside of the libreevent folder and open the "config" folder and open the file called "db.config.json" using a text editor (on Windows you could use Notepad, on MacOS TextEdit and on Linux, I personally like to use Nano or Vim, which are cli only or for graphical ones, use for example gedit). Now, paste the password between the empty quotes after "password". For the host value type your domain, for the "database" parameter, type the name of the database you just created (including any prefixes shown there) and for the database user, type the username you just created (again, including any prefixes shown in the admin panel).
|
||||
|
||||
Now hit "Create Database" to actually create the database.
|
||||
|
||||
And just like that, you have finished setting up your database.
|
||||
|
||||
|
||||
# Uploading libreevent
|
||||
It is now time to upload libreevent to your webhosting account. The recommended way of doing this is to download a FTP client like "FileZilla" and to connect to the hosting account in that way using the credentials provided by the hosting provider. In this guide we assume you use this way. Download and install FileZilla. It is a free and open source FTP client. Open it and you will see a few empty fields towards the top of the app. There you will need to fill in the information given by your hosting provider. Usually, the Host is ftp.yourDomain.com, the username and password are usually your admin account credentials and the port is usually 25552 or can be left empty. Then hit quick connect. At this point, a SSL warning might appear, as the certificate might not (yet) be configured correctly to also include FTP. Accept the certificate and you should be connected. Now create a new folder called "libreevent" by right clicking onto the empty space on the right pane (where it says "remote site") and selecting "create directory". Then on the left side (where it says "local side" navigate to the extracted libreevent folder and upload its contents by selecting it and right clicking to hitting "Upload"). Once that process is completed, you should be set to go to the next session.
|
||||
|
||||
## npm install
|
||||
This project relies on a variety of different node.js modules that need to be installed on the server. Most webhosting providers give you an easy way to run *npm install*. If not, you might be required to upload the *node_modules* folder yourself. You can create such a folder either by downloading the *node_modules.zip* folder from the GitHub releases page or by installing npm on your local machine and then by running *npm i* in the terminal.
|
||||
|
||||
To set up the node application in most hosting providers, head to the admin panel of your hosting account once again. Navigate to the main page and scroll down until you find something that says "Setup Node.js App". Click it and wait for it to load. Click "Create Application" and select the newest available Node.js version and set the Application mode to "Production". For the application root insert the directory name which you have created just before when uploading.
|
||||
|
||||
For the Application URL field, click onto "Choose any value" and select an appropriate domain.
|
||||
|
||||
For the Application startup file type "app.js".
|
||||
|
||||
In the section "Environment variables" hit "Add Variable" and in the appearing fields type beneath "Name" the following: "PORT" (without the quotes!) and under "Value" "8080" (again without quotes). Then hit done and at the top "create". If you end up on the start page again, hit the little pencil icon to get to the application editor. Scroll down to the "Detected configuration files" section and click "Run NPM Install". Once it shows a success message (at the top!), hit "Restart".
|
||||
|
||||
CONGRATULATIONS! You are all set with the installation of libreevent! Now open a new tab in your webbrowser and type your domain name!
|
||||
1
website/src/setup/security.md
Normal file
1
website/src/setup/security.md
Normal file
@@ -0,0 +1 @@
|
||||
# Security best practices
|
||||
@@ -1,3 +1,5 @@
|
||||
# Updating
|
||||
|
||||
Updating libreǝvent is important to keep it secure, performant and bug-free. You can update libreevent automatically using the update tool on the settings page in the admin panel. The tool will automatically fetch all files that have been changed since the last version update. For this, it will have to make a webrequest to GitHub to fetch the JSON file with the update information. After that, many webrequests have to be performed to GitHub to download the new version. Before installing, the tool will show you the full changelog of the new version of libreevent. After the install has completed, you will need to restart libreevent such that the changes can be applied.
|
||||
Updating libreǝvent is important to keep it secure, performant and bug-free. Currently, updating libreevent involves manually uploading the new files.
|
||||
|
||||
**IMPORTANT: make sure to ALWAYS download the data and config directories before updating to not lose any data in case something goes wrong! When uploading, do NOT upload the data and config directories except the release note tell you anything else. Please also always follow any notes detailed in the release notes.**
|
||||
@@ -1,8 +1,8 @@
|
||||
# Systemrequirements
|
||||
libreevent's system requirements are low, you only need a PC or Server that can run node.js and is able to install npm packages. If the system you are trying to use is unable to download npm packages, you may download the packages on your own system and upload them together with the rest of the server files. How to do that is described in greater detail in the [Getting Started guide](/docs/gettingStarted).
|
||||
libreevent's system requirements are low, you only need a PC or Server that can run node.js and is able to install npm packages. If the system you are trying to use is unable to download npm packages, you may download the packages on your own system and upload them together with the rest of the server files. How to do that is described in greater detail in the [Getting Started guide](/docs/setup/installation).
|
||||
|
||||
## node.js
|
||||
Your system needs to be able to run node.js V > 12.0 and must have access to either npm or the downloaded npm packages.
|
||||
Your system needs to be able to run node.js V > 16.0 and must have access to either npm or the downloaded npm packages.
|
||||
|
||||
## Hardware requirements
|
||||
Hardware requirements solely depend on the amount of usage it is going to get. An average hosting plan should be able to handle about 1000 people. In case the system is not able to uphold the traffic, it will activate a protection to try and stop overloading and crashing the system. Although using multiple checks, we cannot guarantee that the system will never crash due to being overloaded, so, if the website is important, please overspec the server.
|
||||
Hardware requirements solely depend on the amount of usage it is going to get. A cheap hosting plan should be able to handle about 100 simultaneous people. Failing to meet the CPU recommendation may lead to slow response times when a lot of people try to connect to the server at once. A good way to mitigate this problem is to use cloudflare's DDOS protection or rate limiting feature. Follow their official guide [here](https://developers.cloudflare.com/waf/rate-limiting-rules/best-practices/) on how to set it up. Many hosting providers already use Cloudflare and you may have settings for cloudflare already enabled. Otherwise, [create a cloudflare account](https://dash.cloudflare.com/sign-up?lang=en-US) and update your website's DNS records to instead of directly pointing to your webserver to point to Cloudflare's DNS where you can re-add the DNS records that were previously configured in your hosting provider's DNS. For more information see [Security best practices](/docs/setup/security).
|
||||
Reference in New Issue
Block a user