mirror of
https://github.com/bensuperpc/infrastructure.git
synced 2025-09-04 23:51:08 +02:00
4
Makefile
4
Makefile
@@ -16,8 +16,8 @@ ADMIN_SERVICES := openssh uptime-kuma
|
||||
#7DAYS_TO_DIE_SERVICES := 7daystodie_server 7daystodie_backup
|
||||
#MINECRAFT_SERVICES := minecraft_server minecraft_backup
|
||||
#SATISFACTORY_SERVICES := satisfactory_server satisfactory_backup
|
||||
GIT_SERVICES := forgejo
|
||||
# forgejo-runner
|
||||
TEAM_FORTRESS_SERVICES := teamfortress2_server
|
||||
# teamfortress2_backup
|
||||
# gitea gitea-runner
|
||||
#IA_SERVICES := open-webui
|
||||
SHARING_SERVICES := privatebin
|
||||
|
@@ -49,3 +49,5 @@ include:
|
||||
- services/7daystodie-server/7daystodie-server/docker-compose.yml
|
||||
# Satisfactory
|
||||
- services/satisfactory-server/satisfactory-server/docker-compose.yml
|
||||
# Team Fortress 2
|
||||
- services/teamfortress2-server/teamfortress2-server/docker-compose.yml
|
||||
|
@@ -51,7 +51,7 @@ services:
|
||||
networks:
|
||||
- infra-network
|
||||
profiles:
|
||||
- forgejo
|
||||
- forgejo-runner
|
||||
privileged: true
|
||||
environment:
|
||||
DOCKER_TLS_CERTDIR: /certs
|
||||
@@ -60,7 +60,7 @@ services:
|
||||
- forgejo_certs:/certs
|
||||
|
||||
forgejo_runner:
|
||||
image: 'code.forgejo.org/forgejo/runner:6.3.1'
|
||||
image: data.forgejo.org/forgejo/runner:9
|
||||
networks:
|
||||
- infra-network
|
||||
profiles:
|
||||
@@ -73,7 +73,7 @@ services:
|
||||
container_name: 'forgejo_runner'
|
||||
env_file:
|
||||
- ./env/forgejo_runner.env
|
||||
# user: 1001:1001
|
||||
user: ${PUID:-1000}:${PGID:-1000}
|
||||
volumes:
|
||||
# - ./config/forgejo_runner/config.yaml:/config.yaml:ro
|
||||
- forgejo_runner:/data
|
||||
|
@@ -36,6 +36,8 @@ services:
|
||||
- gitea_data:/gitea_data:rw
|
||||
- gitea_config:/gitea_config:rw
|
||||
- gitea_db:/gitea_db:rw
|
||||
- teamfortress2_backup:/teamfortress2_backup:rw
|
||||
- teamfortress2_data:/teamfortress2_data:rw
|
||||
|
||||
networks:
|
||||
- infra-network
|
||||
@@ -81,6 +83,11 @@ volumes:
|
||||
name: minecraft_proxy_data
|
||||
minecraft_rcon_data:
|
||||
name: minecraft_rcon_data
|
||||
# teamfortress2
|
||||
teamfortress2_backup:
|
||||
name: teamfortress2_backup
|
||||
teamfortress2_data:
|
||||
name: teamfortress2_data
|
||||
# forgejo
|
||||
forgejo_data:
|
||||
name: forgejo_data
|
||||
|
@@ -0,0 +1,85 @@
|
||||
#//////////////////////////////////////////////////////////////
|
||||
#// //
|
||||
#// docker-multimedia, 2024 //
|
||||
#// Created: 30, May, 2021 //
|
||||
#// Modified: 14 November, 2024 //
|
||||
#// file: - //
|
||||
#// - //
|
||||
#// Source: //
|
||||
#// OS: ALL //
|
||||
#// CPU: ALL //
|
||||
#// //
|
||||
#//////////////////////////////////////////////////////////////
|
||||
|
||||
PROJECT_DIRECTORY ?= infrastructure
|
||||
|
||||
DOCKER_EXEC ?= docker
|
||||
|
||||
DOCKER_PROFILES ?= main_infrastructure
|
||||
|
||||
PROFILE_CMD ?= $(addprefix --profile ,$(DOCKER_PROFILES))
|
||||
|
||||
COMPOSE_FILES ?= $(shell find ./$(PROJECT_DIRECTORY) -maxdepth 1 -name 'docker-compose*.yml' -type f | sed -e 's/^/--file /')
|
||||
COMPOSE_DIR ?= --project-directory ./$(PROJECT_DIRECTORY)
|
||||
|
||||
UID ?= 1000
|
||||
GID ?= 1000
|
||||
|
||||
ENV_ARG_VAR ?= PUID=$(UID) PGID=$(GID)
|
||||
|
||||
DOCKER_COMPOSE_COMMAND ?= $(ENV_ARG_VAR) $(DOCKER_EXEC) compose $(COMPOSE_DIR) $(COMPOSE_FILES) $(PROFILE_CMD)
|
||||
|
||||
.PHONY: build all
|
||||
all: start
|
||||
|
||||
.PHONY: build
|
||||
build:
|
||||
$(DOCKER_COMPOSE_COMMAND) build
|
||||
|
||||
.PHONY: start
|
||||
start:
|
||||
$(DOCKER_COMPOSE_COMMAND) up -d
|
||||
|
||||
.PHONY: start-at
|
||||
start-at:
|
||||
$(DOCKER_COMPOSE_COMMAND) up
|
||||
|
||||
.PHONY: docker-check
|
||||
docker-check:
|
||||
$(DOCKER_COMPOSE_COMMAND) config
|
||||
|
||||
.PHONY: stop
|
||||
stop: down
|
||||
|
||||
.PHONY: down
|
||||
down:
|
||||
$(DOCKER_COMPOSE_COMMAND) down
|
||||
|
||||
.PHONY: restart
|
||||
restart: stop start
|
||||
|
||||
.PHONY: logs
|
||||
logs:
|
||||
$(DOCKER_COMPOSE_COMMAND) logs
|
||||
|
||||
.PHONY: state
|
||||
state:
|
||||
$(DOCKER_COMPOSE_COMMAND) ps
|
||||
$(DOCKER_COMPOSE_COMMAND) top
|
||||
|
||||
.PHONY: update-docker
|
||||
update-docker:
|
||||
$(DOCKER_COMPOSE_COMMAND) pull
|
||||
|
||||
.PHONY: update
|
||||
update: update-docker
|
||||
# git submodule update --init --recursive --remote
|
||||
git pull --recurse-submodules --all --progress
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
docker system prune -f
|
||||
|
||||
.PHONY: purge
|
||||
purge:
|
||||
$(ENV_ARG_VAR) $(DOCKER_EXEC) compose $(COMPOSE_DIR) $(COMPOSE_FILES) down -v --rmi all
|
18
infrastructure/services/teamfortress2-server/Makefile
Normal file
18
infrastructure/services/teamfortress2-server/Makefile
Normal file
@@ -0,0 +1,18 @@
|
||||
#//////////////////////////////////////////////////////////////
|
||||
#// //
|
||||
#// Script, 2022 //
|
||||
#// Created: 14, April, 2022 //
|
||||
#// Modified: 30, November, 2024 //
|
||||
#// file: - //
|
||||
#// - //
|
||||
#// Source: //
|
||||
#// OS: ALL //
|
||||
#// CPU: ALL //
|
||||
#// //
|
||||
#//////////////////////////////////////////////////////////////
|
||||
|
||||
PROJECT_DIRECTORY := teamfortress2-server
|
||||
|
||||
DOCKER_PROFILES := team_fortress_server team_fortress_backup
|
||||
|
||||
include DockerCompose.mk
|
@@ -0,0 +1,27 @@
|
||||
services:
|
||||
teamfortress2_backup:
|
||||
image: mazzolino/restic:latest
|
||||
container_name: teamfortress2_backup
|
||||
profiles:
|
||||
- teamfortress2_backup
|
||||
depends_on:
|
||||
- teamfortress2_server
|
||||
restart: on-failure:5
|
||||
env_file:
|
||||
- ./env/teamfortress2_backup.env
|
||||
volumes:
|
||||
- teamfortress2_backup:/mnt/restic
|
||||
- teamfortress2_data:/data:ro
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
network_mode: none
|
||||
cap_drop:
|
||||
- NET_ADMIN
|
||||
- NET_RAW
|
||||
- SYS_ADMIN
|
||||
|
||||
volumes:
|
||||
teamfortress2_backup:
|
||||
name: teamfortress2_backup
|
||||
teamfortress2_data:
|
||||
name: teamfortress2_data
|
@@ -0,0 +1,14 @@
|
||||
#RUN_ON_STARTUP=true
|
||||
RESTIC_REPOSITORY=/mnt/restic
|
||||
RESTIC_BACKUP_SOURCES=/data
|
||||
RESTIC_PASSWORD=SCY5cmu12Odca302EXabPA9jXYkCb2NN
|
||||
# Backup (exuclusive with Check and Prune)
|
||||
BACKUP_CRON=*/15 * * * *
|
||||
RESTIC_BACKUP_ARGS=--tag docker-volumes --verbose
|
||||
#RESTIC_FORGET_ARGS=--prune --keep-last 8 --keep-daily 7 --keep-weekly 5 --keep-monthly 12 --keep-yearly 4
|
||||
# Check (exuclusive with Check and Prune)
|
||||
#CHECK_CRON=*/15 * * * *
|
||||
#RESTIC_CHECK_ARGS=--read-data-subset=40%
|
||||
# Prune (exuclusive with Check and Prune)
|
||||
#PRUNE_CRON=*/15 * * * *
|
||||
#RESTIC_PRUNE_ARGS=
|
@@ -0,0 +1,7 @@
|
||||
include:
|
||||
# Team Fortress 2 server
|
||||
- teamfortress2/docker-compose.teamfortress2.yml
|
||||
# OpenSSH server
|
||||
- openssh/docker-compose.openssh.yml
|
||||
# Backup server
|
||||
- backup/docker-compose.backup.yml
|
@@ -0,0 +1 @@
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHVtzpnPr0Boy+bUbL+viOYfqeetDZF6Hu40EwNLXNb0 bensuperpc@gmail.com
|
@@ -0,0 +1,36 @@
|
||||
services:
|
||||
# openssh
|
||||
teamfortress2_openssh:
|
||||
image: linuxserver/openssh-server:latest
|
||||
container_name: teamfortress2_openssh
|
||||
profiles:
|
||||
- teamfortress2_openssh
|
||||
depends_on:
|
||||
- teamfortress2_server
|
||||
restart: on-failure:5
|
||||
env_file:
|
||||
- ./env/openssh.env
|
||||
environment:
|
||||
- PUID=${PUID:-1000}
|
||||
- PGID=${PGID:-1000}
|
||||
volumes:
|
||||
- teamfortress2_openssh_config:/config
|
||||
- ./config/authorized_keys:/authorized_ssh_keys:ro
|
||||
- teamfortress2_backup:/teamfortress2_backup
|
||||
- teamfortress2_data:/teamfortress2_data
|
||||
networks:
|
||||
- infra-network
|
||||
security_opt:
|
||||
- no-new-privileges:false
|
||||
cap_drop:
|
||||
- SYS_ADMIN
|
||||
ports:
|
||||
- 2222:2222
|
||||
|
||||
volumes:
|
||||
teamfortress2_openssh_config:
|
||||
name: teamfortress2_openssh_config
|
||||
teamfortress2_backup:
|
||||
name: teamfortress2_backup
|
||||
teamfortress2_data:
|
||||
name: teamfortress2_data
|
15
infrastructure/services/teamfortress2-server/teamfortress2-server/openssh/env/openssh.env
vendored
Normal file
15
infrastructure/services/teamfortress2-server/teamfortress2-server/openssh/env/openssh.env
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
TZ=Etc/UTC
|
||||
SUDO_ACCESS=true
|
||||
PASSWORD_ACCESS=false
|
||||
DOCKER_MODS=linuxserver/mods:openssh-server-rsync
|
||||
#PUBLIC_KEY_URL=https://github.com/bensuperpc.keys
|
||||
PUBLIC_KEY_DIR=/authorized_ssh_keys
|
||||
USER_NAME=admin
|
||||
USER_PASSWORD=K4CLuwknhW6sl6fxKI5DsNt9R9SSelmC
|
||||
|
||||
#PUBLIC_KEY=yourpublickey
|
||||
#PUBLIC_KEY_FILE=/path/to/file
|
||||
#PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys
|
||||
#PUBLIC_KEY_URL=https://github.com/username.keys
|
||||
#USER_PASSWORD_FILE=/path/to/file
|
||||
#LOG_STDOUT=
|
@@ -0,0 +1,39 @@
|
||||
services:
|
||||
# Team Fortress 2 server
|
||||
teamfortress2_server:
|
||||
image: cm2network/tf2:latest-x64
|
||||
container_name: teamfortress2_server
|
||||
profiles:
|
||||
- teamfortress2_server
|
||||
restart: on-failure:5
|
||||
ports:
|
||||
- "27015:27015/tcp"
|
||||
- "27015:27015/udp"
|
||||
volumes:
|
||||
- teamfortress2_data:/home/steam/tf-dedicated
|
||||
networks:
|
||||
- infra-network
|
||||
env_file:
|
||||
- ./env/teamfortress2.env
|
||||
# environment:
|
||||
# - PUID=${PUID:-1000}
|
||||
# - PGID=${PGID:-1000}
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
cap_drop:
|
||||
- SYS_ADMIN
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 16G
|
||||
reservations:
|
||||
memory: 4G
|
||||
|
||||
volumes:
|
||||
teamfortress2_data:
|
||||
name: teamfortress2_data
|
||||
|
||||
networks:
|
||||
infra-network:
|
||||
driver: bridge
|
||||
name: infra-network
|
@@ -0,0 +1,8 @@
|
||||
SRCDS_TOKEN=
|
||||
SRCDS_PW=linuxmasterrace
|
||||
SRCDS_PORT=27015
|
||||
SRCDS_MAXPLAYERS=32
|
||||
SRCDS_REGION=3
|
||||
SRCDS_STARTMAP=pl_badwater
|
||||
SRCDS_CFG=server.cfg
|
||||
SRCDS_SECURED=0
|
Reference in New Issue
Block a user