eleven / ocho Public

Clone
git clone https://amadan.net/eleven/ocho

Plain git — no account needed to clone.

Download

Download this file

1[Unit]
2Description=lchat cloud provisioner (self-serve space creation)
3After=network-online.target lchat-control.service
4Wants=network-online.target
5
6[Service]
7# /data/cloud.env holds LCHAT_ADMIN_TOKEN (gates caller-token minting),
8# LCHAT_CLOUD_BASE_DOMAIN, and optional LCHAT_CLOUD_QUOTA.
9EnvironmentFile=/data/cloud.env
10# The control token is root-only on disk; LoadCredential hands it to this unit
11# alone — a compromised instance (same lchat uid) can't read it.
12LoadCredential=control-token:/etc/lchat/control.token
13ExecStart=/opt/lchat/lchat cloud --socket /run/lchat/cloud.sock --db /data/cloud.db
14Restart=always
15RestartSec=1
16
17# --- hardening (see docs/instance-router.md § Hardening) ---
18User=lchat
19Group=lchat
20CapabilityBoundingSet=
21NoNewPrivileges=yes
22ProtectSystem=strict
23ProtectHome=yes
24ReadWritePaths=/data /run/lchat
25PrivateTmp=yes
26PrivateDevices=yes
27ProtectClock=yes
28ProtectHostname=yes
29ProtectKernelTunables=yes
30ProtectKernelModules=yes
31ProtectKernelLogs=yes
32ProtectControlGroups=yes
33ProtectProc=invisible
34RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
35RestrictNamespaces=yes
36RestrictRealtime=yes
37RestrictSUIDSGID=yes
38LockPersonality=yes
39MemoryDenyWriteExecute=yes
40SystemCallFilter=@system-service
41SystemCallErrorNumber=EPERM
42SystemCallArchitectures=native
43MemoryMax=256M
44TasksMax=256
45
46[Install]
47WantedBy=multi-user.target
48