streams/contrib/easyinstall
2024-03-13 16:21:03 +11:00
..
ddns let's just call it 'contrib' 2022-12-20 17:49:09 +11:00
nginx Changed the way presence of mysql server is tested ("which" rather than "type") 2022-12-27 11:57:27 +01:00
easyinstall.sh let's just call it 'contrib' 2022-12-20 17:49:09 +11:00
INSTALL.md As the easyinstall folder was moved to contrib, a few things needed to be changed 2022-12-27 01:03:15 +01:00
README.md Remove all USB drive backup related stuff 2023-02-02 21:06:08 +01:00
server-config.txt.template Remove all USB drive backup related stuff 2023-02-02 21:06:08 +01:00
server-setup.sh rename Code to src 2024-03-13 16:21:03 +11:00

Easy install setup script

This installation script was provided by the community and is officially unsupported. Use at your own risk. Only use with a fresh install of Debian stable. If you have a server that has Apache, PHP, MySQL, SSL, etc. already installed this will break your server.

Here you will find a quick and easy way to set up a website capable of joining the fediverse, using software from the Streams repository. All you have to do is run the setup script, enter some information and the magic will happen. Check the INSTALL.md file for step-by-step instructions.

Requirements

Before you start, make sure you have the following:

  • A computer/server running a freshly installed Debian GNU/Linux system , on which you can use a command line terminal. It can be a mini-PC or a Raspberry Pi at home, a dedicated server or a VPS.
  • A domain name pointing to this computer/server (a few Dynamic DNS providers can automatically be configured as you will read below). You can register a free subdomain with providers such as FreeDNS or NoIP, or buy a domain elsewhere.
  • Ports 80 & 443 open on your firewall, forwarded to your computer/server you use an IPv4 internet connection through a router (i.e. your ISP router at home).

What the setup script will do for you:

  • Install everything required by your website, basically a web server (Apache or Nginx), PHP, a database server (MariaDB/MySQL), certbot (to obtain Lets Encrypt SSL certificates),
  • Create a database for your website
  • Run certbot to have a secure connection (https)
  • Create a script for daily maintenance:
    • renew certfificate (Lets Encrypt)
    • update of your website software (git)
    • update of your Debian operating system
    • restart your computer/server
  • Create cron jobs for
    • dynamic DNS (works with FreeDNS, Gandi or selfHOST) every 5 minutes
    • Run.php for your website every 10 minutes
    • daily maintenance script every day at 05:30

Some more details

Dynamic DNS configuration

If you plan to run your website on a computer at home, you may have to deal with the fact that your internet provider doesnt offer a fixed IP address. The setup script has extensions for 3 Dynamic DNS (DDNS) providers, which can help you ensure that your domain name will point to your computer/server even if its IP address changes:

  • FreeDNS (freedns.afraid.org) is a free of charge provider that offers free subdomains. You simply need to open an account there and create your subdomain (theres plenty of domains you can choose from). Once your subdomain is created, you will need to find the update key you will use during install.

  • Gandi.net is a french domain name registrar that has a nice API for DDNS (Gandi LiveDNS). If you buy a domain there, you can generate an API key for your account that can be used during install.

  • selfHOST.de is a german (and german speaking only) registrar. If you have an account and buy a domain there, you will need to provide an ID & password to use the setup scripts DDNS configuration.

Note on Rasperry Pi install

It is recommended to run the Raspi without graphical frontend. Use the following command to boot the Raspi in console mode only:

sudo raspi-config

Dont forget to change the default password for user pi!