mirror of
https://github.com/dragonlock2/matthewtran.com.git
synced 2025-10-11 12:07:56 +00:00
matthewtran.com
Services deployed on matthewtran.com.
- website
- gitea (git.matthewtran.com)
- monerod
- p2pool (
xmrig -o matthewtran.com
) - minecraft
- minecraft bedrock
- terraria
- nas (
<server>/<name>
on LAN) - wireguard
setup
- Designate one computer as the configuration server. Create
config/server.json
which contains the configuration for the server to be provisioned. Referenceconfig/server.default
for fields. Run the following.config/provision.py
- Create a Fedora CoreOS installation media and boot it on the server to be provisioned. Run the following on it and reboot.
sudo coreos-installer install /dev/<boot drive> --ignition-url http://<config server ip>/server.ign --insecure-ignition
update
quick dev => scp dockerfiles => rebuild locally final dev => reprovision + wipe home so images rebuilds logs => sudo -u game podman logs container
- Install Ubuntu Desktop 24.04.1 LTS with TPM-backed FDE. Server currently has a bug that makes TPM-backed FDE hard.
- You may need to manually enable IPv6 on the network connection. Use
Automatic
notAutomatic, DHCP only
. - Add an SSH key if you need remote access, setup will disable password authentication.
- Clone this repo and
cd
into it.
- You may need to manually enable IPv6 on the network connection. Use
- Set up the server.
scripts/setup_server.py
- Set up the OpenWrt 24.10 router. Copy SSH keys first to make it easier. Use a strong root password.
scripts/setup_router.py <interface>
- Reboot the router and server.
- Configure, build, and start services.
- Create
website/sendgrid.key
with a SendGrid API key. - Create
terraria/config.txt
andterraria/password.txt
if needed. - Create
nas/mounts.json
which contains a list of"<name>":"<directory>"
for the SMB share. - Create
nas/users.json
which contains a list of"<user>":"<password>"
for the SMB share. scripts/setup_repo.py
- Restore backups if needed. Make sure to set correct ownership. For example,
chown -R 2000:2000 website/gitea
. docker compose build
docker compose up -d
- Create
- Optionally, add additional drives. This script formats the drive as LUKS/BTRFS with the key file stored in
/opt/luks
and auto-mounts on boot. Make sure to backup the key file elsewhere.scripts/setup_drive.py <drive> <mount>
- Optionally, run
scripts/setup_peer.py <name>
for each WireGuard client. - Optionally, add the following DNS entries at the registrar.
hosts type data @
,git
,wg
,www
A
<public IPv4>
@
,git
,www
AAAA
<delegated prefix>::69
wg
AAAA
<delegated prefix>::1
backup
Run scripts/backup.py
and save the resultant data.zip
somewhere. Also run the following commands for BTRFS maintenance. I should probably automate this.
btrfs device stats <mount>
btrfs scrub start -B <mount>
Description
Languages
Python
64.8%
HTML
13.8%
CSS
7.7%
Dockerfile
7.2%
Shell
4.1%
Other
2.4%