@@ -20,7 +20,10 @@ storing links in a temporary database, and will not attempt to join a tailnet.
20
20
21
21
The equivalent using the pre-built docker image:
22
22
23
- docker run -it --rm -p 8080:8080 -v /tmp/golink:/root ghcr.io/tailscale/golink:main -dev-listen :8080
23
+ docker run -it --rm -p 8080:8080 ghcr.io/tailscale/golink:main -dev-listen :8080
24
+
25
+ If you receive the docker error ` unable to open database file: out of memory (14) ` ,
26
+ use a persistent volume as documented in [ Running in production] ( #running-in-production ) .
24
27
25
28
## Joining a tailnet
26
29
@@ -60,9 +63,13 @@ Two pieces of data should be on persistent volumes:
60
63
- tailscale data files in the ` tsnet-golink ` directory inside [ os.UserConfigDir]
61
64
- the sqlite database file where links are stored
62
65
63
- In the docker image, both are stored in ` /root ` , so you can mount a persistent volume at /root:
66
+ In the docker image, both are stored in ` /home/nonroot ` , so you can mount a persistent volume:
67
+
68
+ docker run -v /persistant/data:/home/nonroot ghcr.io/tailscale/golink:main
64
69
65
- docker run -v /persistant/data:/root ghcr.io/tailscale/golink:main
70
+ The mounted directory will need to be writable by the nonroot user (uid: 65532, gid: 65532),
71
+ for example by calling ` sudo chown 65532 /persistent/data ` .
72
+ Alternatively, you can run golink as root using ` docker run -u root ` .
66
73
67
74
No ports need to be exposed, whether running as a binary or in docker.
68
75
golink will listen on port 80 on the tailscale interface, so can be accessed at http://go/ .
0 commit comments