carlos / platform Public

Clone
git clone https://amadan.net/carlos/platform

Plain git — no account needed to clone.

Download

Download this file

1package host
2
3const claimBoundTemplate = `[Unit]
4Description=carlos exec-backed instance %I
5Requires=data-instances.mount run-carlos-instances.mount run-carlos-logs.mount
6After=data-instances.mount run-carlos-instances.mount run-carlos-logs.mount
7
8[Service]
9Type=simple
10ExecStart=/opt/carlos/carlos instance-exec run %I
11ExecStopPost=/opt/carlos/carlos instance-exit run %I
12User=carlos
13Group=carlos
14Slice=carlos-instances-%i.slice
15Restart=no
16KillMode=mixed
17TimeoutStopSec=20
18SuccessExitStatus=129 130 141 143
19StandardOutput=file:/run/carlos/logs/%I.run.sock
20StandardError=inherit
21BindPaths=/data/instances/%I /run/carlos/instances/%I
22ReadWritePaths=/data/instances/%I /run/carlos/instances/%I
23WorkingDirectory=/data/instances/%I
24BindReadOnlyPaths=/run/carlos-control/exe/%I/app:/opt/carlos/app /run/carlos-control/exe/%I/live:/opt/carlos/live
25
26ProtectSystem=strict
27TemporaryFileSystem=/data:ro
28TemporaryFileSystem=/run/carlos:ro
29TemporaryFileSystem=/var/cache:ro
30TemporaryFileSystem=/var/lib:ro
31TemporaryFileSystem=/opt/carlos:ro
32BindReadOnlyPaths=/opt/carlos/carlos
33InaccessiblePaths=/etc/carlos /run/carlos-control
34ProtectHome=yes
35PrivateTmp=yes
36PrivateDevices=yes
37TemporaryFileSystem=/dev/shm:mode=1777,nosuid,nodev
38PrivateIPC=yes
39TemporaryFileSystem=/dev/mqueue:ro
40ProtectControlGroups=yes
41ProtectProc=invisible
42ProcSubset=pid
43PrivatePIDs=yes
44RestrictNamespaces=yes
45NoNewPrivileges=yes
46CapabilityBoundingSet=
47RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
48IPAddressDeny=localhost multicast 0.0.0.0/8 10.0.0.0/8 100.64.0.0/10 169.254.0.0/16 169.254.169.254/32 172.16.0.0/12 192.0.0.0/24 192.168.0.0/16 198.18.0.0/15 240.0.0.0/4 64:ff9b::/96 fc00::/7 fd00:ec2::254/128 fe80::/10 fec0::/10
49BindReadOnlyPaths=-/run/systemd/resolve/resolv.conf:/etc/resolv.conf
50ProtectKernelTunables=yes
51ProtectKernelModules=yes
52ProtectKernelLogs=yes
53ProtectClock=yes
54ProtectHostname=yes
55RemoveIPC=yes
56LockPersonality=yes
57RestrictRealtime=yes
58MemoryDenyWriteExecute=yes
59SystemCallArchitectures=native
60
61TasksMax=256
62OOMScoreAdjust=500
63OOMPolicy=kill
64`
65