forked from Deenyoro/TF2Classified-DockerServer
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
132 lines (120 loc) · 6.54 KB
/
.env.example
File metadata and controls
132 lines (120 loc) · 6.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# =============================================================================
# TF2 Classified Docker Server — Configuration
# =============================================================================
# Copy to .env and edit. All values have sane defaults.
# =============================================================================
# ─── Server Identity ────────────────────────────────────────────────────────
SERVER_NAME=My TF2 Classified Server
SERVER_PASSWORD=
RCON_PASSWORD=changeme
# ─── Gameplay ───────────────────────────────────────────────────────────────
START_MAP=ctf_2fort
MAX_PLAYERS=24
SERVER_PORT=27015
TICKRATE=66
# ─── IP Privacy / Networking ────────────────────────────────────────────────
#
# You have three hosting options:
#
# OPTION A: Steam Datagram Relay (default, zero setup)
# STEAM_NETWORKING=true
# Your IP is hidden behind Valve's relay. Built-in DDoS protection.
# Downside: players CANNOT favorite your server (relay address is ephemeral).
#
# OPTION B: Direct / port-forward (full control, IP exposed)
# STEAM_NETWORKING=false
# Forward port 27015/UDP on your router.
# Players connect by your public IP. Your IP is exposed.
#
STEAM_NETWORKING=true
# ─── server.cfg Handling ──────────────────────────────────────────────────
#
# auto = (default) entrypoint writes server.cfg from these .env values on
# every boot. Your custom overrides go in data/cfg/server_custom.cfg
# which gets exec'd at the end.
#
# custom = entrypoint does NOT touch server.cfg. You manage it yourself.
# Put your own server.cfg in data/cfg/server.cfg and it gets
# symlinked into the game directory. Full control, full responsibility.
#
SERVER_CFG_MODE=auto
# ─── Auto-Update ────────────────────────────────────────────────────────────
# Check for TF2 and TF2C updates every time the container starts
UPDATE_ON_START=true
# Set to false on additional servers that share game volumes
# (only the primary server should download/update game files)
UPDATE_GAME_FILES=true
# Set to 1 to add "validate" to SteamCMD (slower but repairs corrupt installs)
VALIDATE_INSTALL=0
#
# Background auto-update: polls Steam for new builds while the server is
# running. When an update is detected, the server shuts down and the
# container restarts automatically (via Docker's restart policy).
# The new entrypoint run applies the update before relaunching.
AUTO_UPDATE=true
# How often to check, in seconds (default: 300 = 5 minutes)
AUTO_UPDATE_INTERVAL=300
# ─── Server Browser Tags ───────────────────────────────────────────────────
# Comma-separated. Special TF2C tags (verified servers only):
# type_customrules — drastic ruleset changes (civilian, bhop, etc.)
# type_customweapons — custom weapons / rebalance / throwback packs
SV_TAGS=
# ─── SourceMod Admin ───────────────────────────────────────────────────────
# Steam IDs in STEAM_X:Y:Z format. Find yours at https://steamid.io/
# Comma-separated for multiple admins:
# SM_ADMIN_STEAMID=STEAM_0:1:12345678,STEAM_0:0:87654321
SM_ADMIN_STEAMID=
# ─── Extra Launch Arguments ────────────────────────────────────────────────
# Appended to the srcds_linux64 command line.
# Example: +sv_logecho 1 +sv_logsdir logs
EXTRA_ARGS=
# ─── Mod Download URLs ─────────────────────────────────────────────────────
# These default to known-good 64-bit builds. Override to pin versions.
# Set any to "skip" to disable installing that component.
#
# MetaMod:Source 2.0 (build 1383 — minimum required for TF2C is 1380)
MMS_URL=https://mms.alliedmods.net/mmsdrop/2.0/mmsource-2.0.0-git1383-linux.tar.gz
#
# SourceMod 1.13 (build 7292 — includes TF2 Classified gamedata)
SM_URL=https://sm.alliedmods.net/smdrop/1.13/sourcemod-1.13.0-git7292-linux.tar.gz
#
# SMJansson 2.6.1 64-bit (JSON extension)
SMJANSSON_URL=https://github.com/srcdslab/sm-ext-SMJansson/releases/download/2.6.1/sm-ext-SMJansson-2.6.1-linux.tar.gz
#
# Set to "false" to skip all mod installation
INSTALL_MODS=true
# ─── FastDL — Custom Map Downloads ─────────────────────────────────────────
# Source engine clients download custom content from this URL over HTTP.
# Much faster than the in-game transfer. The web server must mirror the
# game directory layout:
# <FASTDL_URL>/maps/yourmap.bsp.bz2 (compressed — client tries first)
# <FASTDL_URL>/maps/yourmap.bsp (fallback)
#
# Hosting options:
# - Cloudflare R2 (free 10GB, global CDN, good for production)
# - Self-hosted nginx (included — run: docker compose --profile fastdl up -d)
# - Any HTTP server (S3, Backblaze B2, your own VPS, etc.)
#
# For self-hosted: drop maps in data/maps/, run "make compress-maps",
# then set this to http://your-ip:8080/tf2classified
#
# Leave empty to disable.
FASTDL_URL=
FASTDL_PORT=8080
# ─── Cloudflare R2 Upload (Optional) ─────────────────────────────────────
# Only needed if you use: make upload-maps
# 1. Create an R2 bucket in your Cloudflare dashboard
# 2. Create an API token with R2 read/write access
# 3. Put credentials in .r2/credentials (AWS CLI format)
# 4. Fill in these values
#
# R2_ENDPOINT=https://<account-id>.r2.cloudflarestorage.com
# R2_BUCKET=my-fastdl-bucket
# R2_PUBLIC_URL=https://<public-bucket-url>/tf2classified/
R2_ENDPOINT=
R2_BUCKET=
R2_PUBLIC_URL=
# ─── Container Settings ────────────────────────────────────────────────────
PUID=1000
PGID=1000
TZ=UTC