38 lines
943 B
Django/Jinja
38 lines
943 B
Django/Jinja
[Unit]
|
|
Description=Coder Development Environment Platform
|
|
Documentation=https://coder.com/docs
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
{% if coder.database.typ == "postgresql" and coder.database.host == "127.0.0.1" %}
|
|
After=postgresql.service
|
|
Wants=postgresql.service
|
|
{% endif %}
|
|
|
|
[Service]
|
|
Type=simple
|
|
User={{ coder.run_user.name }}
|
|
Group={{ coder.run_user.group }}
|
|
EnvironmentFile={{ coder.config_path }}/coder.env
|
|
WorkingDirectory={{ coder.work_path }}
|
|
ExecStart={{ coder.run_path }} server
|
|
ExecReload=/bin/kill -HUP $MAINPID
|
|
Restart=always
|
|
RestartSec=10
|
|
|
|
# Security settings
|
|
NoNewPrivileges=true
|
|
PrivateTmp=true
|
|
ProtectSystem=strict
|
|
ProtectHome=true
|
|
ReadWritePaths={{ coder.work_path }} {{ coder.config_path }}
|
|
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
|
|
|
# Resource limits
|
|
LimitNOFILE=65536
|
|
{% if coder.oauth.enabled %}
|
|
# Additional memory for OAuth operations
|
|
MemoryMax=2G
|
|
{% endif %}
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target |