FeministWiki:Server setup: Difference between revisions

m
no edit summary
mNo edit summary
Line 7: Line 7:
First of all, let's make sure the system is up to date.
First of all, let's make sure the system is up to date.


  apt-get update
apt-get update
  apt-get upgrade
apt-get upgrade
  apt-get dist-upgrade
apt-get dist-upgrade


=== Install miscellaneous tools ===
=== Install miscellaneous tools ===
Line 15: Line 15:
Some of these are needed further down, some are just good to have.
Some of these are needed further down, some are just good to have.


  apt-get install certbot
apt-get install certbot
  apt-get install dnsutils
apt-get install dnsutils
  apt-get install git
apt-get install git
  apt-get install mg
apt-get install mg
  apt-get install moreutils
apt-get install moreutils
  apt-get install net-tools
apt-get install net-tools
  apt-get install nmap
apt-get install nmap
  apt-get install software-properties-common
apt-get install software-properties-common
  apt-get install tree
apt-get install tree


=== Set up firewall ===
=== Set up firewall ===
Line 29: Line 29:
For now, block everything but SSH.
For now, block everything but SSH.


  apt-get install ufw
apt-get install ufw
  ufw allow proto tcp to 0.0.0.0/0 port 22
ufw allow proto tcp to 0.0.0.0/0 port 22
  ufw enable
ufw enable


=== Install server components ===
=== Install server components ===
Line 39: Line 39:
Backports:
Backports:


  echo deb http://deb.debian.org/debian $(lsb_release -sc)-backports main > /etc/apt/sources.list.d/backports.list
echo deb http://deb.debian.org/debian $(lsb_release -sc)-backports main > /etc/apt/sources.list.d/backports.list


PHP repo '''only''' if a very new version is needed:
PHP repo '''only''' if a very new version is needed:


  wget -O /etc/apt/trusted.gpg.d/sury-php.gpg https://packages.sury.org/php/apt.gpg
wget -O /etc/apt/trusted.gpg.d/sury-php.gpg https://packages.sury.org/php/apt.gpg
  echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/sury-php.list
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/sury-php.list


MariaDB repo '''only''' if a very new version is needed:
MariaDB repo '''only''' if a very new version is needed:


  wget https://mariadb.org/mariadb_release_signing_key.asc
wget https://mariadb.org/mariadb_release_signing_key.asc
  apt-key add mariadb_release_signing_key.asc
apt-key add mariadb_release_signing_key.asc
  rm mariadb_release_signing_key.asc
rm mariadb_release_signing_key.asc
  echo "deb http://mirror.23media.de/mariadb/repo/10.4/debian $(lsb_release -sc) main" > /etc/apt/sources.list.d/mariadb.list
echo "deb http://mirror.23media.de/mariadb/repo/10.4/debian $(lsb_release -sc) main" > /etc/apt/sources.list.d/mariadb.list


Now we can install everything:
Now we can install everything:


  apt-get install apache2
apt-get install apache2
  apt-get install dovecot-core
apt-get install dovecot-core
  apt-get install ejabberd # good candidate for backports
apt-get install ejabberd # good candidate for backports
  apt-get install fail2ban
apt-get install fail2ban
  apt-get install mariadb-server
apt-get install mariadb-server
  apt-get install opendkim
apt-get install opendkim
  apt-get install php7.4 # or whatever version we're on
apt-get install php7.4 # or whatever version we're on
  apt-get install postfix
apt-get install postfix
  apt-get install slapd
apt-get install slapd


Example for installing ejabberd from backports instead:
Example for installing ejabberd from backports instead:


  apt-get install ejabberd/$(lsb_release -sc)-backports
apt-get install ejabberd/$(lsb_release -sc)-backports


=== Fetch scripts & config repo ===
=== Fetch scripts & config repo ===
Line 73: Line 73:
Set up GitHub ssh access by copying the <code>.ssh/id_rsa</code> from the old server.  After that:
Set up GitHub ssh access by copying the <code>.ssh/id_rsa</code> from the old server.  After that:
    
    
  cd ~
cd ~
  git clone git@github.com:FeministWiki/FeministWiki.git repo
git clone git@github.com:FeministWiki/FeministWiki.git repo
  cp -a repo/root/* .
cp -a repo/root/* .
  openssl aes-256-cbc -d -md sha512 -pbkdf2 -iter 100000 -in repo/pwd.enc -out - | tar -xzf-
openssl aes-256-cbc -d -md sha512 -pbkdf2 -iter 100000 -in repo/pwd.enc -out - | tar -xzf-


The <code>openssl</code> decryption command will prompt you for a password.  Enter the password stored in <code>/root/pwd/meta</code> on the old server.
The <code>openssl</code> decryption command will prompt you for a password.  Enter the password stored in <code>/root/pwd/meta</code> on the old server.
Line 86: Line 86:
=== Create vmail user ===
=== Create vmail user ===


  groupadd -g 5000 vmail
groupadd -g 5000 vmail
  useradd -u 5000 -g vmail -s /usr/sbin/nologin -d /home/vmail -m vmail
useradd -u 5000 -g vmail -s /usr/sbin/nologin -d /home/vmail -m vmail


=== Initialize LetsEncrypt ===
=== Initialize LetsEncrypt ===