Compare commits

...

6 Commits

9 changed files with 124 additions and 8 deletions

View File

@@ -23,3 +23,5 @@
required = true required = true
clean = git-lfs clean -- %f clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f smudge = git-lfs smudge -- %f
[init]
defaultBranch = main

View File

@@ -5,5 +5,7 @@
./duplicati.nix ./duplicati.nix
./factorio.nix ./factorio.nix
./golink.nix ./golink.nix
./immich.nix
./satisfactory.nix
]; ];
} }

View File

@@ -1,5 +1,6 @@
name: duplicati
services: services:
duplicati: server:
image: lscr.io/linuxserver/duplicati:latest image: lscr.io/linuxserver/duplicati:latest
environment: environment:
- TZ=Europe/Amsterdam - TZ=Europe/Amsterdam

View File

@@ -1,5 +1,17 @@
name: factorio
services: services:
factorio-server-manager: upnp:
image: ghcr.io/vleeuwenmenno/auto-upnp:latest
restart: unless-stopped
network_mode: host
environment:
UPNP_DURATION: 86400 # 24 hours in seconds
PORTS: |
[
{"port": 34197, "protocol": "udp"}
]
server-manager:
image: "ofsm/ofsm:latest" image: "ofsm/ofsm:latest"
container_name: "factorio-server-manager" container_name: "factorio-server-manager"
restart: "unless-stopped" restart: "unless-stopped"

View File

@@ -1,5 +1,6 @@
name: golink
services: services:
golink: server:
image: ghcr.io/tailscale/golink:main image: ghcr.io/tailscale/golink:main
environment: environment:
- TS_AUTHKEY=${TS_AUTHKEY} - TS_AUTHKEY=${TS_AUTHKEY}

View File

@@ -0,0 +1,19 @@
{ config, pkgs, ... }:
{
environment.etc."docker/satisfactory/docker-compose.yml".source = ./satisfactory/docker-compose.yml;
systemd.services.satisfactory = {
description = "Satisfactory Game Server Docker Compose Service";
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
serviceConfig = {
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/satisfactory/docker-compose.yml up";
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/satisfactory/docker-compose.yml down";
WorkingDirectory = "/etc/docker/satisfactory";
Restart = "always";
RestartSec = 10;
};
wantedBy = [ "multi-user.target" ];
};
}

View File

@@ -0,0 +1,66 @@
name: satisfactory
services:
upnp:
image: ghcr.io/vleeuwenmenno/auto-upnp:latest
restart: unless-stopped
network_mode: host
environment:
UPNP_DURATION: 86400 # 24 hours in seconds
PORTS: |
[
{"port": 7777, "protocol": "udp"},
{"port": 15000, "protocol": "udp"},
{"port": 15777, "protocol": "udp"},
{"port": 27015, "protocol": "tcp"},
{"port": 27015, "protocol": "udp"},
{"port": 27031, "protocol": "udp"},
{"port": 27032, "protocol": "udp"},
{"port": 27033, "protocol": "udp"},
{"port": 27034, "protocol": "udp"},
{"port": 27035, "protocol": "udp"},
{"port": 27036, "protocol": "tcp"},
{"port": 27036, "protocol": "udp"}
]
server:
hostname: 'satisfactory-server'
image: 'wolveix/satisfactory-server:latest'
restart: unless-stopped
volumes:
- './data/config:/config'
- './data/certs/live/satisfactory.mvl.sh/fullchain.pem:/config/gamefiles/FactoryGame/Certificates/cert_chain.pem'
- './data/certs/live/satisfactory.mvl.sh/privkey.pem:/config/gamefiles/FactoryGame/Certificates/private_key.pem'
environment:
- MAXPLAYERS=4
- PGID=1000
- PUID=1000
- ROOTLESS=false
- STEAMBETA=false
healthcheck:
test: [ "CMD", "bash", "/healthcheck.sh" ]
interval: 30s
timeout: 10s
retries: 3
start_period: 120s
depends_on:
certbot:
condition: service_completed_successfully
deploy:
resources:
reservations:
memory: 4G
limits:
memory: 8G
network_mode: 'host'
certbot:
image: certbot/certbot
command: certonly --standalone --non-interactive --agree-tos -m menno@vleeuwen.me -d satisfactory.mvl.sh
# Uncomment this when requesting a new certificate, make sure to disable nginx-proxy-manager first since this conflicts with port 80
# ports:
# - '80:80/tcp'
volumes:
- ./data/certs:/etc/letsencrypt
environment:
- CERTBOT_MAIL=menno@vleeuwen.me
- DOMAIN=satisfactory.mvl.sh

View File

@@ -1,7 +1,17 @@
version: '3.8' name: wireguard
services: services:
wireguard: upnp:
image: ghcr.io/vleeuwenmenno/auto-upnp:latest
restart: unless-stopped
network_mode: host
environment:
UPNP_DURATION: 86400 # 24 hours in seconds
PORTS: |
[
{"port": 51820, "protocol": "udp"}
]
server:
image: lscr.io/linuxserver/wireguard:latest image: lscr.io/linuxserver/wireguard:latest
container_name: wireguard container_name: wireguard
cap_add: cap_add:

View File

@@ -37,5 +37,8 @@
"editor.detectIndentation": true, "editor.detectIndentation": true,
"editor.autoIndent": "full", "editor.autoIndent": "full",
"debug.inlineValues": "on", "debug.inlineValues": "on",
"git.confirmSync": false "git.confirmSync": false,
"[dockercompose]": {
"editor.defaultFormatter": "ms-azuretools.vscode-docker"
}
} }