Compare commits
6 Commits
35cf0d53b7
...
5be84404a5
| Author | SHA1 | Date | |
|---|---|---|---|
|
5be84404a5
|
|||
|
857225c049
|
|||
|
91d68a507c
|
|||
|
6f08b3ebb2
|
|||
|
803843bc24
|
|||
|
6d0d2a2ca9
|
@@ -23,3 +23,5 @@
|
||||
required = true
|
||||
clean = git-lfs clean -- %f
|
||||
smudge = git-lfs smudge -- %f
|
||||
[init]
|
||||
defaultBranch = main
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
name: factorio
|
||||
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"
|
||||
container_name: "factorio-server-manager"
|
||||
restart: "unless-stopped"
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
name: golink
|
||||
services:
|
||||
golink:
|
||||
server:
|
||||
image: ghcr.io/tailscale/golink:main
|
||||
environment:
|
||||
- TS_AUTHKEY=${TS_AUTHKEY}
|
||||
|
||||
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
|
||||
@@ -1,7 +1,17 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
wireguard:
|
||||
name: wireguard
|
||||
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": 51820, "protocol": "udp"}
|
||||
]
|
||||
|
||||
server:
|
||||
image: lscr.io/linuxserver/wireguard:latest
|
||||
container_name: wireguard
|
||||
cap_add:
|
||||
|
||||
@@ -37,5 +37,8 @@
|
||||
"editor.detectIndentation": true,
|
||||
"editor.autoIndent": "full",
|
||||
"debug.inlineValues": "on",
|
||||
"git.confirmSync": false
|
||||
"git.confirmSync": false,
|
||||
"[dockercompose]": {
|
||||
"editor.defaultFormatter": "ms-azuretools.vscode-docker"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user