Git Product home page Git Product logo

fly-tailscale-exit's Introduction

fly-tailscale-exit

Action Status: auto update tailscale version

This repo shows how to run tailscale on fly, specifically to run exit nodes. If you want to add tailscale to a fly.io application, follow this guide instead: https://tailscale.com/kb/1132/flydotio/

⚠️ In September 2023 Tailscale and Mullvad announced to partner up: for $5/month you can use a mullvad exit node from up to 5 tailscale nodes. This is great news and I'd recommend to use this instead of the setup described here. Follow this guide to set it up.

Intro

Did you ever need a wormhole to another place in the internet? But you didn't trust the shady VPN providers with ads all over YouTube? Well, why not run it "yourself"? This guide helps you to set up a globally distributed and easily sharable VPN service for you and your friends.

  • Instantly scale up or down nodes around the planet
  • Choose where your traffic exits to the internet from 30+ locations.
  • Enjoy solid connections worldwide
  • Bonus: the setup and the first 160GB of traffic each month are gratis. Update: a dedicated IPv4 to enable P2P communication (not via DERP) now costs $2/mo. Update 2: Fly.io's free tier (160/140GB) isn't meant for use by proxies. Your fly plan might get upgraded to a $10/month “Advanced” plan. Thanks @ignoramous for the heads up.

Sounds too good to be true. Well that's probably because it is. I compiled this setup as an excercise while exploring the capabilities of fly.io and tailscale. This is probably not what you should use as a serious VPN replacement. Go to one of the few trustworthy providers. For the reasons why this is a bad idea, read below.

Checkout gbraad's fork if you want to include squid, dante and gitpod https://github.com/spotsnel/tailscale-tailwings

Screenshot

Video of tailscale on iOS changing exit nodes.
https://user-images.githubusercontent.com/3500621/129452512-616e7642-5a03-4037-9dc1-f6be96ca1e30.mp4

Setup

1. Have a GitHub account

Create a GitHub account if you don't have one already: https://github.com/signup

2. Have a GitHub organization

Let's create a new github org for your network: https://github.com/organizations/plan

  • Choose a name for your network: eg. banana-bender-net
  • Plan: free

3. Have tailscale

Install tailscale on your machine(s):

4. Setup DNS in tailscale

In order to use tailscale for exit traffic you need to configure a public DNS. Go to https://login.tailscale.com/admin/dns and add the nameservers of your choice (eg. cloudflare: 1.1.1.1, 1.0.0.1, 2606:4700:4700::1111, 2606:4700:4700::1001)

5. Create a tailscale auth key

Create a reusable auth key in tailscale: https://login.tailscale.com/admin/settings/authkeys

A ephemeral key would be better for our use case, but it's restricted to IPv6 only by tailscale, which doesn't work so well as a VPN exit node.

6. Have a fly.io account and cli

Install the fly-cli to your machine and login with github: https://fly.io/docs/hands-on/installing/

7. Have a fly.io organization

8. Setup fly

Give the app the name you want. Don't deploy yet.

git clone https://github.com/patte/fly-tailscale-exit.git

cd fly-tailscale-exit

fly launch

? fly.toml file already exits would you like copy its configuration : (yes/no) yes

? App Name (leave blank to use an auto-generated name) tailwings

? Select organization: banana-bender-net-test (banana-bender-net-test)

? would you like to deploy postgressql for the app: (yes/no) no

? would you like to deploy now : (yes/no) no

9. Set the tailscale auth key in fly

fly secrets set TAILSCALE_AUTH_KEY=[see step 4]
Secrets are staged for the first deployment

10 Deploy (and IP and scale)

fly deploy
? Would you like to allocate a dedicated ipv4 address now? Yes

Update: fly.io does not automatically allocate a dedicated IPv4 per app on the first deployment anymore. You want a dedicated IPv4 to be able to expose the UDP port on it and thus enable peer-to-peer connections (not via tailscale DERP). You have three options:

  • Say yes during the initial deploy.
  • Run the command fly ips allocate-v4 to add a dedicated IPv4 later
  • Run fly ips allocate-v6. Direct connections to the node will only work if your local machine has a global IPv6. (not tested)
  • Remove the services.ports section from fly.toml. This has the disadvantage that your node is never going to be directly reachable and all your traffic is routed via tailscale DERP servers.

At the time of writing fly deploys two machines per default. For this setup you probably want 1 machine per region. Run the following to remove the second machine:

fly scale count 1

You can check the logs with fly logs. If you encounter Out of memory: Killed process 526 (tailscaled) you might want to give the machine more memory with: fly scale memory 512.

11. Enable exit node in tailscale

Wait for the node to appear in the tailscale machine overview. Enable exit routing for the nodes https://login.tailscale.com/admin/machines (see tailscale docs on how to do it)

12. Connect with your local machine or smartphone

On iOS, choose "use exit node" and there you go.

On linux, just run

tailscale up --use-exit-node=fly-fra

13. Regions

To add or remove regions just type:

fly scale count 1 --region hkg
fly scale count 1 --region fra

or:
fly scale count 3 --region hkg,fra,ams

or remove a machine explicitly:
fly status
fly machine stop $(machine_id)
fly machine destroy $(machine_id)

Wait for the node to appear in tailscale, confirm it to be a legit exit node (step 11), choose it in your client boom! In less than 5 minutes you access the internet from another place.
Note: See the [fly docs about scaling] for further info: https://fly.io/docs/apps/scale-count/
Note: Scaling up also reinitializes the existing nodes. Just use the newly created one and delete the old.
Note: It seems that not all fly ips are correctly geo located or that not all fly regions have their own exit routers and some use another for egress traffic. This needs further investigation. See this HN discussion about it.

Screencast.mp4

Update tailscale

git pull
fly deploy --strategy immediate

Then manually remove the old nodes in tailscale and enable exit node in tailscale.

Checkout this fork for an approach to auto deploy to fly with a github action (including managing tailscale nodes with a python script).

Halt

In case you want to stop:

sudo systemctl stop tailscaled
fly suspend

Remove

In case you want to tear it down:

fly orgs delete banana-bender-net

Request the deletion of the tailnet.

Optional: Auto approve exit nodes

To auto approve the fly machines as exit-nodes in tailscale. Add the following ACLs:

{
  "tagOwners": {
    "tag:fly-exit": [
      "YOUR-USERNAME@github", // user creating the tailscale auth key (step 5)
    ],
  },
  "autoApprovers": {
    "exitNode": ["tag:fly-exit"],
  },
}

Then uncomment --advertise-tags=tag:fly-exit (and \ on the previous line) in start.sh and deploy fly deploy --strategy immediate.

Invite your friends

All you need to do to invite friends into your network is to invite them to the github organization, have them install tailscale and login with github. They immediately see the available exit nodes and can use whichever they please.

Why this probably is a bad idea

  • Dirty egress traffic for fly.io.
    Usually traffic exiting fly machines is upstream API traffic not dirty users surfing the web. If too many people do this and use it for scraping or worse fly's traffic reputation might suffer.

  • Increased traffic on tailscale derp servers.
    Usually tailscale is used for internal networks. If everybody uses this as their everyday VPN the traffic the derp servers might increase beyond what's forseen.

  • Tailscale teams is supposed to cost money.
    Tailscale lists teams to cost $5 per user per month but creating and using a github org in the way described above doesn't count as team but as personal account. I didn't find a way to upgrade an org created this way into a paying org. Please let me pay ;) It seems you can pay at tailscale for a github team now, so go there and do that if you use this together with others: https://login.tailscale.com/admin/settings/billing/plans This makes this VPN approach being fully paid.

You’ll never be stopped from spinning up more devices or subnet routers, or trying out ACL rules. We encourage you to play around, find what works best for you, and update your payment settings after-the-fact.

source Kudos to tailscale for using soft-limit, IMHO this makes for a great user experience and I'd expect it to simplify some code parts as well.

Love Letter

Just enjoy the magnificence, the crazyness of the house of cards that the modern cloud is. I seriously enjoyed setting this up with fly and tailscale. I think both are mind blowingly awesome.

I mean tailscale... just look at it. The already awesome wireguard set up to a mesh by an open-source client that does all sorts of NAT wizardry, provided servers to route through if P2P doesn't work and a nice web-ui. It's just great. If I could wish for anything it would be to be able to run the server part myself (I know about headscale and I'll give it a try next) . Not because I don't want to pay the company money, the contrary is the case, but because I just don't feel comfortable having my (bare-metal) machines trusting a network interface for which I can't fully control who is connected to the other end. Tailscale could auth a machine into my network and I'd have no possibility to reliably find out.

What gets me most about fly is the approach to turn Dockerfiles into microVMs. Imagine docker but with --privileged --net=host. This is what makes this example so simple in comparison to other cloud providers: Just a neat Dockerfile and start script but you can use tailscale as if it would run on a real linux host, because it does. No need to run tailscaled with --tun=userspace-networking --socks5-server=localhost:1055, the tailscale interface get's added to the VM and everything just works. This includes that the metrics gathered by fly automatically include the tailscale0 interface and you can view it's traffic chart in grafana easily.

Screenshot from 2021-08-14 19-17-34

This plus anycast, interapp vpn, persistent storage, locations all over the world, an open-source client and being a chatty crew with the mindset "Go Nuts" have me left in awe.

fly-tailscale-exit's People

Contributors

bslatyer avatar case avatar easynv avatar github-actions[bot] avatar hemanth-narra avatar patte avatar saljam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fly-tailscale-exit's Issues

Failed due to unhealthy allocations

please tell me how to fix this
You can detach the terminal anytime without stopping the deployment
==> Monitoring deployment

1 desired, 1 placed, 0 healthy, 1 unhealthy
--> v0 failed - Failed due to unhealthy allocations and deploying as v1
Error logs
2022-02-10T03:39:24.854 app[f483df71] maa [info] Starting init (commit: 0c50bff)...

2022-02-10T03:39:24.871 app[f483df71] maa [info] Preparing to run: /app/start.sh as root

2022-02-10T03:39:24.874 app[f483df71] maa [info] Error: UnhandledIoError(Os { code: 2, kind: NotFound, message: "No such file or directory" })

Are direct connections working?

Thanks for this guide!

However, I'm not sure what I'm doing wrong here, but I don't seem to be able to get a direct connections to the nodes on Fly.
i.e. tailscale status and tailscale ping shows that connections are going through a DERP relay:

$ /Applications/Tailscale.app/Contents/MacOS/Tailscale status
…
100.125.56.76   fly-fra      chris@       linux   active; exit node; relay "fra", tx 3185 rx 5303

$ /Applications/Tailscale.app/Contents/MacOS/Tailscale ping fly-fra
pong from fly-fra (100.125.56.76) via DERP(fra) in 65ms
pong from fly-fra (100.125.56.76) via DERP(fra) in 57ms
…
2022/03/07 22:09:24 direct connection not established

The same happened when launching the Fly app in fra, ams, or lhr.

Which seems unexpected, as the Fly config asks for UDP port 41641 to be open, which is normally all that's needed to establish a direct connection. For example, on another exit node I have:

$ /Applications/Tailscale.app/Contents/MacOS/Tailscale status
…
100.78.27.79    xyz          chris@       linux   active; offers exit node; direct 89.14.247.123:41641, tx 9001 rx 9002

Are you folks using this setup seeing Tailscale able to make direct connections to the Fly app? Am I missing something?

Traffic still routed via DERP

So based on the readme I have dedicated an IPv4 on the fly.io

flyctl ips list
VERSION	IP          	TYPE  	REGION	CREATED AT
v4     	1.2.3.4 	public	global	1h44m ago 	

But when I tried to do ping from the flyctl vm to my machine it always routed via the DERP relay

3d8d909f754089:/# ./app/tailscale ping my-machine
pong from my-machine (100.86.107.48) via DERP(sin) in 21ms

This is my current fly.toml

# fly.toml app configuration file generated for kkk-net on 2023-10-03T14:50:04+07:00
#
# See https://fly.io/docs/reference/configuration/ for information about how to use this file.
#

app = "my-net"
primary_region = "sin"
kill_signal = "SIGINT"
kill_timeout = "5s"

[experimental]
  auto_rollback = false
  private_network = true

[build]

[env]
  PORT = "443"

[[services]]
  protocol = "udp"
  internal_port = 443
  processes = ["app"]

  [[services.ports]]
    port = 443
  [services.concurrency]
    type = "connections"
    hard_limit = 100
    soft_limit = 75

Thanks a lot in advance!

Question: Deployed two machines in one app?

Thank you for your project, it has been of great use to me.
But I have a confusion, I am not sure if it is a problem with my operation or the script itself.
When I follow the process to step 10 flyctl deploy, the platform shows two machines at the same time. This is shown in the image below:

8P_GR@ RJY U6$8~U@LG 0

I made sure I didn't perform any additional operations. I checked the project's scripts and didn't find the problem either. Is there a way to start only one machine? Two machines in the same area seems a bit redundant.

Unable to deploy using Wget

Hey @patte,

It's been a while 😜

I have discovered an error in Wget while deploying with Fly.io's remote builder - the deployment will error out ([HOST](wget: can't connect to remote host: Host is unreachable)) while trying to download the latest package from pkgs.tailscale.com

I've created a workaround with cURL which also deploys successfully to Fly.io and will make a pull request if that's fine with you

Here are the latest deployment logs in case you can find a problem with it

*[main][~/fly-tailscale-exit]$ fly deploy
==> Verifying app config
--> Verified app config
==> Building image
Remote builder fly-builder-long-glitter-301 ready
==> Creating build context
--> Creating build context done
==> Building image with Docker
--> docker host: 20.10.12 linux x86_64
Sending build context to Docker daemon  79.54kB
[+] Building 7.1s (7/14)                                                                                              
 => [internal] load remote build context                                                                         0.0s
 => copy /context /                                                                                              0.1s
 => [internal] load metadata for docker.io/library/alpine:latest                                                 3.6s
 => [stage-1 1/8] FROM docker.io/library/alpine:latest@sha256:ff6bdca1701f3a8a67e328815ff2346b0e4067d32ec36b799  0.9s
 => => resolve docker.io/library/alpine:latest@sha256:ff6bdca1701f3a8a67e328815ff2346b0e4067d32ec36b7992c1fdc00  0.0s
 => => sha256:ff6bdca1701f3a8a67e328815ff2346b0e4067d32ec36b7992c1fdc001dc8517 1.64kB / 1.64kB                   0.0s
 => => sha256:e2e16842c9b54d985bf1ef9242a313f36b856181f188de21313820e177002501 528B / 528B                       0.0s
 => => sha256:b2aa39c304c27b96c1fef0c06bee651ac9241d49c4fe34381cab8453f9a89c7d 1.47kB / 1.47kB                   0.0s
 => => sha256:63b65145d645c1250c391b2d16ebe53b3747c295ca8ba2fcb6b0cf064a4dc21c 3.37MB / 3.37MB                   0.8s
 => => extracting sha256:63b65145d645c1250c391b2d16ebe53b3747c295ca8ba2fcb6b0cf064a4dc21c                        0.1s
 => [tailscale 2/4] WORKDIR /app                                                                                 0.0s
 => CANCELED [stage-1 2/8] RUN apk update && apk add ca-certificates iptables ip6tables iproute2 && rm -rf /var  2.5s
 => ERROR [tailscale 3/4] RUN wget https://pkgs.tailscale.com/stable/tailscale_1.38.2_amd64.tgz &&   tar xzf ta  2.4s
------                                                                                                                
 > [tailscale 3/4] RUN wget https://pkgs.tailscale.com/stable/tailscale_1.38.2_amd64.tgz &&   tar xzf tailscale_1.38.2_amd64.tgz --strip-components=1:
#7 2.429 Connecting to pkgs.tailscale.com ([2604:a880:2:d0::61c:d001]:443)
#7 2.430 wget: can't connect to remote host: Host is unreachable
------
Error failed to fetch an image or build from source: error building: executor failed running [/bin/sh -c wget https://pkgs.tailscale.com/stable/${TSFILE} &&   tar xzf ${TSFILE} --strip-components=1]: exit code: 1

tailscale gets killed due to lack of memory

After using the exit node for like a 30mins-1hr it always goes offline, and the log says

Out of memory: Killed process 526 (tailscaled) total-vm:932140kB, anon-rss:185320kB, file-rss:0kB, shmem-rss:0kB, UID:0 pgtables:608kB oom_score_adj:0

Is there a way to prevent this?

Update to new Fly template naming scheme

Hi @patte,

I've noticed that the new flyctl looks for Fly Templates now named fly.toml which causes the current fly-template.toml to not be found.

My suggestion would be to update all documentation and files to now refer to fly.toml instead of fly-template.toml

Cannot use the exit node

Is there a way to debug when after deploying everything and approving everything and then enabling:

sudo tailscale up --exit-node=fly-syd --exit-node-allow-lan-access=true

It's not possible to access the internet. All packets get dropped. ping 8.8.8.8 doesn't work.

My tailscale network is up and running and I'm able to connect to other tailscale machines, but nothing gets routed over the exit node.

Furthermore I notice that the fly-syd doesn't respond to ICMP ping. I guess you have to use tailscale ping fly-syd, which does work, and the logs on the fly dashboard seem to indicate things are fine.

How come it seems to deploy 2 machines to tailscale?

I followed the instructions and even set flyctl scale count 1 and I see fly-syd and fly-syd-1 in my tailscale admin. Why are there 2 machines? There's even only 1 app on fly dashboard. Is there a way to know which machine is actually connected?

Failed deploy issue: context deadline exceeded

I encountered the following error while using fly deploy.

$ fly deploy
Update available 0.0.353 -> v0.0.499.
Run "fly version update" to upgrade.
==> Verifying app config
--> Verified app config
==> Building image
Error failed to fetch an image or build from source: error connecting to docker: failed building options: failed probing "personal": context deadline exceeded

After diagnosing with the fly doctor command, it was found that the problem was caused by the local network firewall, which prevented the normal use of WireGuard to connect to fly.io's servers.

$ fly doctor
Update available 0.0.353 -> v0.0.499.
Run "fly version update" to upgrade.
Testing authentication token... PASSED
Testing flyctl agent... PASSED
Testing local Docker instance... Nope
Pinging WireGuard gateway (give us a sec)... FAILED
(Error: ping gateway: no response from gateway received)

We can't establish connectivity with WireGuard for your personal organization.

WireGuard runs on 51820/udp, which your local network may block.

If this is the first time you've ever used 'flyctl' on this machine, you
can try running 'flyctl doctor' again.

Switching to another server and network without similar restriction rules, the problem was solved smoothly. I hope this can be helpful for anyone who may encounter similar problems.

Fly.io no longer provides dedicated IPv4 addresses for free

I encountered the following warning while using fly deploy.

$ flyctl  deploy
...
==> Creating release
Error Services defined at indexes: 0 require a dedicated IP address. You currently have no dedicated IPs allocated. Please allocate at least one dedicated IP before deploying (`fly ips allocate-v4` and/or `fly ips allocate-v6`). Affected services:
  [0] udp/41641 => 8080

$ fly ips allocate-v4
? Looks like you're accessing a paid feature. Dedicated IPv4 addresses now costs $2/mo. Are you ok with this? 

After investigation, it was found that Fly.io no longer provides dedicated IPv4 addresses for free.

I wonder if there's a way to lift the restrictions mentioned above by modifying the tailscale configuration? Thank you for your help.

Failed when running deploy

I tried with flyctl deploy after cloning to local, and it returned the error message:

==> Validating app configuration
--> Validating app configuration done
Services
UDP 41641 ⇢ 41641
Remote builder fly-builder-spring-bird-602 ready
==> Creating build context
--> Creating build context done
==> Building image with Docker
--> docker host: 20.10.12 linux x86_64
Sending build context to Docker daemon   75.2kB
[+] Building 435.9s (4/14)
 => [internal] load remote build context                                                                                                                                                                                         0.0s
 => copy /context /                                                                                                                                                                                                              0.1s
 => [internal] load metadata for docker.io/library/alpine:latest                                                                                                                                                                 0.7s
 => ERROR [tailscale 1/4] FROM docker.io/library/alpine:latest@sha256:bc41182d7ef5ffc53a40b044e725193bc10142a1243f395ee852a8d9730fc2ad                                                                                         435.2s
 => => resolve docker.io/library/alpine:latest@sha256:bc41182d7ef5ffc53a40b044e725193bc10142a1243f395ee852a8d9730fc2ad                                                                                                           0.0s
 => => sha256:bc41182d7ef5ffc53a40b044e725193bc10142a1243f395ee852a8d9730fc2ad 1.64kB / 1.64kB                                                                                                                                   0.0s
 => => sha256:1304f174557314a7ed9eddb4eab12fed12cb0cd9809e4c28f29af86979a3c870 528B / 528B                                                                                                                                       0.0s
 => => sha256:9c6f0724472873bb50a2ae67a9e7adcb57673a183cea8b06eb778dca859181b5 1.47kB / 1.47kB                                                                                                                                   0.0s
 => => sha256:213ec9aee27d8be045c6a92b7eac22c9a64b44558193775a1a7f626352392b49 0B / 2.81MB                                                                                                                                     435.2s
------
 > [tailscale 1/4] FROM docker.io/library/alpine:latest@sha256:bc41182d7ef5ffc53a40b044e725193bc10142a1243f395ee852a8d9730fc2ad:
------
Error error building: failed commit on ref "layer-sha256:213ec9aee27d8be045c6a92b7eac22c9a64b44558193775a1a7f626352392b49": "layer-sha256:213ec9aee27d8be045c6a92b7eac22c9a64b44558193775a1a7f626352392b49" failed size validation: 0 != 2806054: failed precondition

Is that a issue with the dockerfile, or with the remote worker?

Failed due to unhealthy allocations

I face this issue when deploying. How can I fix?

1 desired, 1 placed, 0 healthy, 1 unhealthy
v2 failed - Failed due to unhealthy allocations
***v2 failed - Failed due to unhealthy allocations and deploying as v3

Checking log there is an error

nrt [info] Running: `/app/start.sh` as root
nrt [info] Error: UnhandledIoError(Os { code: 13, kind: PermissionDenied, message: "Permission denied" })

Faile to deploy

how i can fix this
Recent Events
TIMESTAMP TYPE MESSAGE
2023-02-04T11:49:58Z Received Task received by client
2023-02-04T11:49:59Z Task Setup Building Task Directory
2023-02-04T11:50:16Z Driver Failure rpc error: code = Unknown desc = error waiting for vsock readiness: vsock connection attempts exhausted
2023-02-04T11:50:16Z Not Restarting Error was unrecoverable
2023-02-04T11:50:16Z Alloc Unhealthy Unhealthy because of failed task
2023-02-04T11:50:16Z Killing Sent interrupt. Waiting 5s before force killing

2023-02-04T11:50:00Z [info]Configuring virtual machine
2023-02-04T11:50:00Z [info]Pulling container image
2023-02-04T11:50:06Z [info]Unpacking image
2023-02-04T11:50:08Z [info]Preparing kernel init
2023-02-04T11:50:09Z [info]Configuring firecracker
2023-02-04T11:50:09Z [info]Starting virtual machine
2023-02-04T11:50:09Z [info]Starting init (commit: e3cff9e)...
2023-02-04T11:50:09Z [info]Preparing to run: /app/start.sh as root
2023-02-04T11:50:09Z [info]Error: UnhandledIoError(Os { code: 2, kind: NotFound, message: "No such file or directory" })
2023-02-04T11:50:09Z [info][ 0.150709] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
2023-02-04T11:50:09Z [info][ 0.152751] CPU: 0 PID: 1 Comm: init Not tainted 5.12.2 #1
2023-02-04T11:50:09Z [info][ 0.152715] Call Trace:
2023-02-04T11:50:09Z [info][ 0.153150] show_stack+0x52/0x58
2023-02-04T11:50:09Z [info][ 0.153548] dump_stack+0x6b/0x86
2023-02-04T11:50:09Z [info][ 0.153997] panic+0xfb/0x2bc
2023-02-04T11:50:09Z [info][ 0.154410] do_exit.cold+0x60/0xb0
2023-02-04T11:50:09Z [info][ 0.154927] do_group_exit+0x3b/0xb0
2023-02-04T11:50:09Z [info][ 0.155760] __x64_sys_exit_group+0x18/0x20
2023-02-04T11:50:09Z [info][ 0.156397] do_syscall_64+0x38/0x50
2023-02-04T11:50:09Z [info][ 0.156867] entry_SYSCALL_64_after_hwframe+0x44/0xae
2023-02-04T11:50:09Z [info][ 0.157472] RIP: 0033:0x7f7f661f16c9
2023-02-04T11:50:09Z [info][ 0.157863] Code: eb ef 48 8b 76 28 e9 a5 03 00 00 64 48 8b 04 25 00 00 00 00 48 8b b0 b0 00 00 00 e9 af ff ff ff 48 63 ff b8 e7 00 00 00 0f 05 3c 00 00 00 48 89 d0 0f 05 eb f9 66 2e 0f 1f 84 00 00 00 00 00
2023-02-04T11:50:09Z [info][ 0.160939] RSP: 002b:00007ffc13bbb8b8 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7
2023-02-04T11:50:09Z [info][ 0.162255] RAX: ffffffffffffffda RBX: 00007f7f65f6c340 RCX: 00007f7f661f16c9
2023-02-04T11:50:09Z [info][ 0.163163] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000001
2023-02-04T11:50:09Z [info][ 0.164177] RBP: 0000000000000001 R08: 00007f7f662cba58 R09: 0000000000000000
2023-02-04T11:50:09Z [info][ 0.165102] R10: 0000000000000000 R11: 0000000000000246 R12: 00007ffc13bbb918
2023-02-04T11:50:09Z [info][ 0.166010] R13: 00007ffc13bbb928 R14: 0000000000000000 R15: 0000000000000000
2023-02-04T11:50:09Z [info][ 0.166978] Kernel Offset: disabled
2023-02-04T11:50:09Z [info][ 0.167434] Rebooting in 1 seconds..
--> v7 failed - Failed due to unhealthy allocations and deploying as v8

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.