Skip to content

Add tailscale egg and update README with tailscale egg#25

Open
YONN2222 wants to merge 6 commits intopelican-eggs:mainfrom
YONN2222:tailscale
Open

Add tailscale egg and update README with tailscale egg#25
YONN2222 wants to merge 6 commits intopelican-eggs:mainfrom
YONN2222:tailscale

Conversation

@YONN2222
Copy link
Copy Markdown

@YONN2222 YONN2222 commented Feb 7, 2026

Description

Adds a new Egg for Tailscale, a simple VPN that allows secure access to your local network from anywhere. This egg supports running Tailscale as a regular node or as an exit node with optional subnet routing.

Checklist for all submissions

  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?
  • Have you tested and reviewed your changes with confidence that everything works?
  • Did you branch your changes and PR from that branch and not from your master branch?

New egg Submissions

  1. Does your submission pass tests (server is connectable)?
  2. [] Does your egg use a custom docker image?
    • Have you tried to use a generic image?
    • [] Did you PR the necessary changes to make it work?
  3. Have you added the egg to the main README.md and any other README files in subdirectories of the egg (e.g /game_eggs) according to the alphabetical order?
  4. Have you added a unique README.md for the egg you are adding according to the alphabetical order?
  5. You verify that the start command applied does not use a shell script
    • If some script is needed then it is part of a current yolk or a PR to add one
  6. The egg was exported from the panel

},
"scripts": {
"installation": {
"script": "#!/bin/bash\napt-get update\napt-get install -y curl tar ca-certificates\n\ncd /mnt/server\n\nrm -rf var tailscale.tgz tailscale_*\n\nARCH=$(uname -m)\ncase \"${ARCH}\" in\n x86_64) ARCH=\"amd64\" ;;\n aarch64) ARCH=\"arm64\" ;;\n armv7l) ARCH=\"arm\" ;;\n *) exit 1 ;;\nesac\n\nVERSION=$(curl -s https://api.github.com/repos/tailscale/tailscale/releases/latest | grep '\"tag_name\":' | sed -E 's/.*\"([^\"]+)\".*/\\1/' | sed 's/v//')\n\nif [ -z \"$VERSION\" ]; then\n echo \"Error getting version, falling back to 1.94.1\"\n VERSION=\"1.94.1\"\nfi\n\ncurl -L \"https://pkgs.tailscale.com/stable/tailscale_${VERSION}_${ARCH}.tgz\" -o tailscale.tgz\ntar xzf tailscale.tgz --strip-components=1\n\nrm tailscale.tgz\nrm -rf systemd\n\nchmod +x tailscaled tailscale",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WHat is up with this order, it should be script, container, entrypoint

"files": "{}",
"startup": "{\n \"done\": \"Tailscale is running...\"\n}",
"logs": "{}",
"stop": "^^C"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is invalid it is ^C or ^SIGTERM, ^SIGINT or ^SIGKILL

},
"file_denylist": [],
"startup_commands": {
"Default": "if [ ! -f ./tailscaled ]; then echo \"Binary missing, please Reinstall Server\"; exit 1; fi; chmod +x ./tailscaled ./tailscale; ./tailscaled --state=tailscaled.state --tun=userspace-networking --socket=/tmp/tailscaled.sock & sleep 5; TS_ARGS=\"--authkey=${TS_AUTHKEY} --hostname=${SERVER_NAME}\"; if [ \"${ENABLE_EXIT_NODE}\" = \"1\" ] || [ \"${ENABLE_EXIT_NODE}\" = \"true\" ]; then TS_ARGS=\"${TS_ARGS} --advertise-exit-node\"; fi; if [ ! -z \"${TS_ROUTES}\" ]; then TS_ARGS=\"${TS_ARGS} --advertise-routes=${TS_ROUTES}\"; fi; echo \"Starting with args: ${TS_ARGS}\"; ./tailscale --socket=/tmp/tailscaled.sock up ${TS_ARGS} && echo \"Tailscale is running...\" && wait"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The chmod should be done in the install script not here

@YONN2222 YONN2222 requested a review from QuintenQVD0 February 8, 2026 13:17
@QuintenQVD0
Copy link
Copy Markdown
Contributor

Please just export from a panel. Pelican or ptero are fine, use https://redthirten.github.io/scramble-egg-converter/ to convert to the other panel format

@YONN2222
Copy link
Copy Markdown
Author

Hey @QuintenQVD0 is there anything I should change here? I'm not entirely sure what needs to be updated: #25 (comment)

@YONN2222
Copy link
Copy Markdown
Author

Hey @QuintenQVD0, I've addressed all the review comments. Could you take another look and let me know if there's anything else that needs to be changed? Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants