mirror of
https://github.com/dragonlock2/matthewtran.com.git
synced 2025-10-11 20:17:54 +00:00
update setup instructions
This commit is contained in:
parent
2107249f47
commit
7f7367c74d
94
README.md
94
README.md
@ -1,6 +1,6 @@
|
||||
# matthewtran.com
|
||||
|
||||
Stuff that's deployed on [matthewtran.com](http://matthewtran.com). Tested on Ubuntu Server 22.04.3 LTS. Currently running the following services.
|
||||
Stuff that's deployed on [matthewtran.com](https://matthewtran.com). Currently running the following services.
|
||||
|
||||
- website
|
||||
- gitea ([git.matthewtran.com](https://git.matthewtran.com))
|
||||
@ -8,58 +8,56 @@ Stuff that's deployed on [matthewtran.com](http://matthewtran.com). Tested on Ub
|
||||
- p2pool (`xmrig -o matthewtran.com:3333`)
|
||||
- minecraft
|
||||
- minecraft bedrock
|
||||
- terraria
|
||||
- ~~terraria~~
|
||||
- wireguard
|
||||
|
||||
## setup
|
||||
|
||||
Forward the following ports to the server.
|
||||
|
||||
| service | port |
|
||||
|-------------------|--------------------|
|
||||
| website | 80, 443 |
|
||||
| gitea | 2222 |
|
||||
| monerod | 18080 |
|
||||
| p2pool | 3333, 37888, 37889 |
|
||||
| minecraft | 25565 |
|
||||
| minecraft bedrock | 19132, 19133 |
|
||||
| terraria | 7777 |
|
||||
| wireguard | 51820 |
|
||||
|
||||
Make sure IPv6 is enabled in Docker by modifying `/etc/docker/daemon.json`. For example:
|
||||
|
||||
```
|
||||
{
|
||||
"ipv6": true,
|
||||
"fixed-cidr-v6": "2001:db8:1::/64",
|
||||
"experimental": true,
|
||||
"ip6tables": true
|
||||
}
|
||||
```
|
||||
|
||||
Run the following commands. For the IP update script, add a SendGrid API key to `website/sendgrid.key`.
|
||||
|
||||
```
|
||||
docker compose build
|
||||
docker compose up -d # auto restarts on reboot!
|
||||
```
|
||||
|
||||
Note for first start you'll need to configure Gitea.
|
||||
1. Install [Ubuntu Server 24.04.1 LTS](https://ubuntu.com/download/server).
|
||||
- Add OpenSSH Server and Docker during the process.
|
||||
- Expand the root partition if needed.
|
||||
- `lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv`
|
||||
- `resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv`
|
||||
- Give yourself Docker access if needed.
|
||||
- `groupadd docker`
|
||||
- `usermod -aG docker $USER`
|
||||
- Enable UFW and allow the following.
|
||||
- `ufw enable`
|
||||
- `ufw allow OpenSSH`
|
||||
- `ufw allow 51820/udp`
|
||||
2. Forward the following ports. Set a static IP if needed.
|
||||
- website - `80`, `443`
|
||||
- gitea - `2222`
|
||||
- monerod - `18080`
|
||||
- p2pool - `3333`, `37888`, `37889`
|
||||
- minecraft - `25565`
|
||||
- minecraft bedrock - `19132`, `19133`
|
||||
- terraria - `7777`
|
||||
- wireguard - `51820`
|
||||
3. Install dependencies and clone.
|
||||
- `apt install avahi-daemon git python3 python-is-python3 qrencode wireguard zip`
|
||||
- `git clone https://github.com/dragonlock2/matthewtran.com`
|
||||
- `cd matthewtran.com`
|
||||
4. Set up WireGuard.
|
||||
- `systemctl enable wg-quick@wg0.service`
|
||||
- `python wireguard/setup.py`
|
||||
- `systemctl start wg-quick@wg0.service`
|
||||
5. Enable IPv6 for Docker.
|
||||
- Add the following to `/var/snap/docker/current/config/daemon.json`.
|
||||
- `"ipv6": true`
|
||||
- `"fixed-cidr-v6": "fd3a:138e:8fd0:0000::/64"`
|
||||
- `systemctl restart snap.docker.dockerd.service`
|
||||
6. Set up the repo.
|
||||
- Run `./volumes.sh`, allowing the containers to access the binded volumes since you have the same UID/GID by default.
|
||||
- Create `website/sendgrid.key` with a [SendGrid API key](https://app.sendgrid.com/settings/api_keys).
|
||||
- Create `terraria/password.txt` if needed.
|
||||
- Restore backups if needed.
|
||||
7. Build and start the services.
|
||||
- `docker compose build`
|
||||
- `docker compose up -d`
|
||||
8. If first start, some services need configuring.
|
||||
- Gitea
|
||||
|
||||
## backup
|
||||
|
||||
Run `./backup.sh` and save the resultant `data.zip` somewhere. I should probably automate this.
|
||||
|
||||
## TODO
|
||||
|
||||
- better setup
|
||||
- install ubuntu
|
||||
- forward ports
|
||||
- enable ssh
|
||||
- install wireguard
|
||||
- run script to setup wireguard
|
||||
- install docker + compose
|
||||
- run `volumes.sh` => container user has same uid/gid, can access
|
||||
- run docker compose
|
||||
- ufw?
|
||||
- need to setup gitea
|
||||
|
20
compose.yml
20
compose.yml
@ -76,13 +76,13 @@ services:
|
||||
- default6
|
||||
volumes:
|
||||
- ./minecraft_bedrock/worlds:/home/ubuntu/worlds
|
||||
terraria:
|
||||
restart: always
|
||||
build: terraria/.
|
||||
entrypoint: ["/bin/sh", "/home/ubuntu/entry.sh"]
|
||||
ports:
|
||||
- "7777:7777"
|
||||
networks:
|
||||
- default6
|
||||
volumes:
|
||||
- ./terraria/worlds:/home/ubuntu/worlds
|
||||
# terraria:
|
||||
# restart: always
|
||||
# build: terraria/.
|
||||
# entrypoint: ["/bin/sh", "/home/ubuntu/entry.sh"]
|
||||
# ports:
|
||||
# - "7777:7777"
|
||||
# networks:
|
||||
# - default6
|
||||
# volumes:
|
||||
# - ./terraria/worlds:/home/ubuntu/worlds
|
||||
|
@ -1,5 +1,16 @@
|
||||
#!/bin/sh
|
||||
|
||||
# TODO graceful exit
|
||||
cleanup() {
|
||||
echo "stop" > cmd
|
||||
}
|
||||
|
||||
LD_LIBRARY_PATH=. ./bedrock_server
|
||||
trap 'cleanup' TERM
|
||||
|
||||
rm cmd
|
||||
mkfifo cmd
|
||||
LD_LIBRARY_PATH=. ./bedrock_server < cmd &
|
||||
echo "help" > cmd # shell waits for FIFO to be opened for writing before starting program!
|
||||
wait $! # wait for SIGTERM
|
||||
wait $! # wait for server to stop
|
||||
|
||||
# TODO stop not working
|
||||
|
@ -1,8 +1,8 @@
|
||||
#!/bin/sh
|
||||
|
||||
mkdir website/letsencrypt
|
||||
mkdir website/gitea/config
|
||||
mkdir website/gitea/data
|
||||
mkdir -p website/gitea/config
|
||||
mkdir -p website/gitea/data
|
||||
mkdir monerod/.bitmonero
|
||||
mkdir p2pool/cache
|
||||
mkdir minecraft/world
|
||||
|
Loading…
x
Reference in New Issue
Block a user