7
									
								
								cloudron-headscale/.dockerignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								cloudron-headscale/.dockerignore
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| .dockerignore | ||||
| .git | ||||
| .gitignore | ||||
| docker-compose.yml | ||||
| node_modules | ||||
| helpers/* | ||||
| runner/* | ||||
							
								
								
									
										5
									
								
								cloudron-headscale/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								cloudron-headscale/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| .env | ||||
| runner/.env | ||||
| secrets.txt | ||||
| .tags | ||||
| .vscode/* | ||||
							
								
								
									
										17
									
								
								cloudron-headscale/CloudronManifest.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								cloudron-headscale/CloudronManifest.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| { | ||||
|   "version": "0.0.1", | ||||
|   "id": "com.github.juanfont.headscale", | ||||
|   "icon": "file://logo.png", | ||||
|   "healthCheckPath": "/", | ||||
|   "httpPort": 8000, | ||||
|   "addons": { | ||||
|     "localstorage": {} | ||||
|   }, | ||||
|   "manifestVersion": 2, | ||||
|   "website": "https://github.com/juanfont/headscale", | ||||
|   "title": "Headscale", | ||||
|   "author": "Headscale developers", | ||||
|   "tagline": "Self-hosted tailscale control plane", | ||||
|   "tags": [ "golang", "vpn", "wireguard" ], | ||||
|   "documentationUrl": "https://github.com/juanfont/headscale/tree/main/docs" | ||||
| } | ||||
							
								
								
									
										19
									
								
								cloudron-headscale/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								cloudron-headscale/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| FROM cloudron/base:4.0.0@sha256:31b195ed0662bdb06a6e8a5ddbedb6f191ce92e8bee04c03fb02dd4e9d0286df | ||||
|  | ||||
| ENV HS_VERSION 0.20.0 | ||||
| EXPOSE 8000 | ||||
|  | ||||
| RUN curl --proto '=https' --tlsv1.2 -sSfL \ | ||||
|         https://github.com/juanfont/headscale/releases/download/v${HS_VERSION}/headscale_${HS_VERSION}_linux_amd64 \  | ||||
|         -o /bin/headscale \ | ||||
|     && chmod +x /bin/headscale | ||||
|  | ||||
| RUN sed -e 's,^logfile=.*$,logfile=/run/supervisord.log,' -i /etc/supervisor/supervisord.conf | ||||
| COPY supervisor-headscale-server.conf /etc/supervisor/conf.d/ | ||||
|  | ||||
|  | ||||
| COPY start.sh /app/pkg/ | ||||
|  | ||||
| WORKDIR /app/data | ||||
|  | ||||
| CMD [ "/app/pkg/start.sh" ] | ||||
							
								
								
									
										5
									
								
								cloudron-headscale/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								cloudron-headscale/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| # Cloudron Headscale | ||||
|  | ||||
| This is the repository to create a headscale server for cloudron. | ||||
|  | ||||
|  | ||||
							
								
								
									
										
											BIN
										
									
								
								cloudron-headscale/logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								cloudron-headscale/logo.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 49 KiB | 
							
								
								
									
										50
									
								
								cloudron-headscale/start.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										50
									
								
								cloudron-headscale/start.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,50 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| set -x | ||||
|  | ||||
| random_string() { | ||||
|         LC_CTYPE=C tr -dc 'a-zA-Z0-9' < /dev/urandom | head -c32 | ||||
| } | ||||
|  | ||||
|  | ||||
| if [ ! -e /app/data/config.yaml ]; then | ||||
|         cat <<-EOF > "/app/data/config.yaml" | ||||
| --- | ||||
| server_url: $CLOUDRON_APP_ORIGIN | ||||
| listen_addr: 0.0.0.0:8000 | ||||
|  | ||||
| disable_check_updates: true | ||||
|  | ||||
| db_type: sqlite3 | ||||
| db_path: /app/data/db.sqlite | ||||
|  | ||||
| ## Use already defined certificates: | ||||
| tls_cert_path: "" | ||||
| tls_key_path: "" | ||||
|  | ||||
| # Path to a file containg ACL policies. | ||||
| # ACLs can be defined as YAML or HUJSON. | ||||
| # https://tailscale.com/kb/1018/acls/ | ||||
| acl_policy_path: "" | ||||
|  | ||||
| private_key_path: /app/data/private.key | ||||
| noise: | ||||
|   private_key_path: /app/data/noise_private.key | ||||
| EOF | ||||
| fi | ||||
|  | ||||
|  | ||||
| if [ ! -e /app/data/README.md ]; then | ||||
|         cat <<-'EOF' > "/app/data/README.md" | ||||
| # Hey there! | ||||
|  | ||||
| Configuration for headscale is stored in the file called ``. After you have made changes to it you can restart just drone-server by running `supervisorctl restart drone-server`. | ||||
|  | ||||
| To work with drone you need to configure a provider in your `.env` file. See https://docs.drone.io/server/overview/ for instructions. | ||||
| EOF | ||||
| fi | ||||
|  | ||||
| echo "=> Ensure permissions" | ||||
| chown -R cloudron:cloudron /run /app/data | ||||
|  | ||||
| exec /usr/bin/supervisord --configuration /etc/supervisor/supervisord.conf --nodaemon -i headscale-server | ||||
							
								
								
									
										10
									
								
								cloudron-headscale/supervisor-headscale-server.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								cloudron-headscale/supervisor-headscale-server.conf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| [program:headscale-server] | ||||
| command=/bin/headscale --config /app/data/config.yaml serve | ||||
| directory=/app/data | ||||
| user=cloudron | ||||
| autostart=true | ||||
| autorestart=true | ||||
| stdout_logfile=/dev/stdout | ||||
| stdout_logfile_maxbytes=0 | ||||
| stderr_logfile=/dev/stderr | ||||
| stderr_logfile_maxbytes=0 | ||||
		Reference in New Issue
	
	Block a user