adds Satisfactory game server and UPnP service to Docker configuration
This commit is contained in:
parent
857225c049
commit
5be84404a5
@ -5,5 +5,7 @@
|
||||
./duplicati.nix
|
||||
./factorio.nix
|
||||
./golink.nix
|
||||
./immich.nix
|
||||
./satisfactory.nix
|
||||
];
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
name: duplicati
|
||||
services:
|
||||
duplicati:
|
||||
server:
|
||||
image: lscr.io/linuxserver/duplicati:latest
|
||||
environment:
|
||||
- TZ=Europe/Amsterdam
|
||||
|
19
config/nixos/docker/satisfactory.nix
Normal file
19
config/nixos/docker/satisfactory.nix
Normal 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" ];
|
||||
};
|
||||
}
|
66
config/nixos/docker/satisfactory/docker-compose.yml
Normal file
66
config/nixos/docker/satisfactory/docker-compose.yml
Normal 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
|
Loading…
x
Reference in New Issue
Block a user