User:Dart Raiden/Server setup
MariaDB
sudo apt install mariadb-server
sudo mysql_secure_installation (do not set a root password; enable the other restrictions)
sudo mysql -u root
CREATE USER 'forum'@'localhost' IDENTIFIED BY 'p@ssword'; CREATE DATABASE forum_miranda_ng_org; quit
sudo mysql -u root -f forum_miranda_ng_org < ~/forumbackup.sql
sudo mysql -u root
GRANT ALL ON forum_miranda_ng_org.* to 'forum'@'localhost'; FLUSH PRIVILEGES; quit
sudo mysql -u root
CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'p@ssword'; CREATE DATABASE wiki_miranda_ng_org; quit
sudo mysql -u root -f wiki_miranda_ng_org < ~/wikibackup.sql
sudo mysql -u root
GRANT ALL ON wiki_miranda_ng_org.* to 'wiki'@'localhost'; FLUSH PRIVILEGES; quit
Certbot
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d miranda-ng.org -d www.miranda-ng.org -d addons.miranda-ng.org -d forum.miranda-ng.org -d oauth.miranda-ng.org -d wiki.miranda-ng.org
Postfix
sudo DEBIAN_PRIORITY=low apt install postfix opendkim opendkim-tools
sudo dpkg-reconfigure postfix
Internet Site miranda-ng.org empty default No default 0 + all
sudo nano /etc/postfix/main.cf
myhostname = miranda-ng.org inet_interfaces = loopback-only
sudo systemctl enable -now pendkim
sudo opendkim-genkey -D /etc/dkimkeys/ --domain miranda-ng.org --selector dkim
udo nano /etc/opendkim.conf
UMask 002 Socket local:/var/spool/postfix/run/opendkim/opendkim.sock AutoRestart Yes AutoRestartRate 10/1h SyslogSuccess Yes LogWhy Yes ExternalIgnoreList refile:/etc/dkimkeys/TrustedHosts InternalHosts refile:/etc/dkimkeys/TrustedHosts KeyTable refile:/etc/dkimkeys/KeyTable SigningTable refile:/etc/dkimkeys/SigningTable SignatureAlgorithm rsa-sha256
sudo adduser postfix opendkim
sudo mkdir -p /var/spool/postfix/run/opendkim
sudo chown opendkim:opendkim /var/spool/postfix/run/opendkim
sudo nano /etc/dkimkeys/TrustedHosts
127.0.0.1 localhost *.miranda-ng.org
sudo nano /etc/dkimkeys/KeyTable
dkim._domainkey.miranda-ng.org miranda-ng.org:dkim:/etc/dkimkeys/dkim.private
sudo nano /etc/dkimkeys/SigningTable
*@miranda-ng.org dkim._domainkey.miranda-ng.org
sudo chown -R opendkim:opendkim /etc/dkimkeys
sudo chmod 600 /etc/dkimkeys/*
sudo nano /etc/postfix/main.cf
milter_protocol = 2 milter_default_action = accept smtpd_milters = unix:/run/opendkim/opendkim.sock non_smtpd_milters = unix:/run/opendkim/opendkim.sock
sudo nano /etc/hosts
92.53.65.196 miranda-ng.org
sudo hostnamectl set-hostname miranda-ng.org
sudo systemctl restart opendkim
sudo systemctl restart postfix
DNS records:
miranda-ng.org MX miranda-ng.org 10 miranda-ng.org TXT v=spf1 +a +mx -all DKIM._DOMAINKEY.miranda-ng.org TXT dkim_from_/etc/dkimkeys/dkim.txt _DMARC.miranda-ng.org TXT v=DMARC1; p=none; aspf=r; sp=none
echo "Subject: hello" | sendmail test@example.com
Prosody
sudo wget https://prosody.im/downloads/repos/$(lsb_release -sc)/prosody.sources -O/etc/apt/sources.list.d/prosody.sources
sudo apt install prosody lua-dbi-mysql
sudo mysql -u root
CREATE USER 'prosody'@'localhost' IDENTIFIED BY 'p@ssw0rd'; CREATE DATABASE prosody; GRANT ALL ON prosody.* to 'prosody'@'localhost'; FLUSH PRIVILEGES; quit;
sudo nano /etc/prosody/prosody.cfg.lua
admins = { "username@miranda-ng.org", "username2@miranda-ng.org" }
modules_enabled = {
--"register"; -- Allow users to register on this server
"proxy65"; -- Enables a file transfer proxy service which clients behind NAT can use
}
modules_disabled = {
"s2s"; -- Handle server-to-server connections
}
storage = "sql" -- Default is "internal"
sql = { driver = "MySQL", database = "prosody", username = "prosody", password = "p@ssword", host = "localhost" }
archive_expires_after = "4w" -- Remove archived messages after 1 week
log = {
info = "/var/log/prosody/prosody.log"; -- Change 'info' to 'debug' for verbose logging
error = "/var/log/prosody/prosody.err";
}
VirtualHost "miranda-ng.org"
ssl = {
key = "/etc/letsencrypt/live/miranda-ng.org/privkey.pem";
certificate = "/etc/letsencrypt/live/miranda-ng.org/fullchain.pem";
protocol = "tlsv1_1+";
}
Component "conference.miranda-ng.org" "muc"
modules_enabled = { "muc_mam" }
sudo chmod -R 755 /etc/letsencrypt/live
sudo prosodyctl adduser username@miranda-ng.org
sudo systemctl enable -now prosody