Self Host Tailscale with Headscale - How To Setup

Поділитися
Вставка
  • Опубліковано 25 гру 2024

КОМЕНТАРІ • 215

  • @BrianPhillipsSKS
    @BrianPhillipsSKS Рік тому +64

    Good video, glad you are talking about Headscale. It is worrying that so many people are pushing Tailscale without any interest in hosting Headscale. Especially in the SelfHosted community

    • @Jims-Garage
      @Jims-Garage  Рік тому +12

      I agree. I find some people just deploy things because they're flavour of the month without considering what it is or how they're increasing attack surface/eroding privacy.

    • @penguinnexus
      @penguinnexus 10 місяців тому +11

      Thing is, for a home setting, not self-hosting tailscale has a lot of advantages in removing a single point of failure. There's nothing wrong with using SaaS even in the self-hosted community. The attack surface is reduced (using Tailscale) by not needing to port forward. You fail to mention that traffic is encrypted peer-to-peer, and Tailscale claim they cannot and do not want to see the data in transit. Great video though, and thanks for raising awareness of Headscale@@Jims-Garage

    • @killer2600
      @killer2600 8 місяців тому +4

      You lose many advantages of tailscale when you try to self-host headscale. You lose the simplicity, the fact that it automatically handles dynamic IP addresses that change, and that it works over CGNAT. The last one being a top reason why someone would choose tailscale over self-hosting Wireguard or any other VPN if they had the inclination to completely self-host their VPN solution.

    • @JorgeGarciaM
      @JorgeGarciaM 6 місяців тому +2

      @@penguinnexus @Jims-Garage The traffic is encrypted peer-to-peer, but not end-to-end (different concept). The traffic can (in theory) be tapped at the "connecting" end where Tailscale (Third party) controls the traffic. However, I do agree that it's still an improvement from doing port-forwarding at home.

    • @39zack
      @39zack 4 місяці тому +1

      @@JorgeGarciaMsays end to end in the docks tho.
      Also the private keys never leaves the device they was created on.

  • @darkenaxe
    @darkenaxe 10 місяців тому +11

    I heard about Tailscale like 2 days ago but was not convinced by the third party thing.
    Im glad to know about Headscale now thanks to you, nice video :)

  • @law1213
    @law1213 Рік тому +5

    Great work Jim. I just used this to help me deploy headscale in kubernetes. Appreciate all the hard work. Next stop setting up authentik as an identity provider via oidc.

  • @hpbingham
    @hpbingham 9 місяців тому +29

    If you are trying to follow this tutorial, headscale stopped pushing releases using the `latest` tag. As such you will need to change the docker compose to use the most recent stable release which is 0.22.3. So your docker compose should be:
    image: headscale/headscale:0.22.3

    • @okaudi
      @okaudi 4 місяці тому +1

      what about omitting the "latest" or "0.22.3"? Does it pull the latest image?

    • @matthijssmulders3432
      @matthijssmulders3432 Місяць тому

      Yea sad I wasted an hour trying to configure things in another way and then realising this was the problem... should have looked through the comments first

  • @PW-72648
    @PW-72648 Рік тому +6

    Found by accident, will stay for more! As others said, very good explanation and chill video😊, thanks.

  • @dbess1
    @dbess1 11 місяців тому +3

    Thanks for this! You’ve answered the voice in the back of my mind regarding trusting third parties with fingers crossed. - new subscriber now!

  • @Daz2281
    @Daz2281 9 місяців тому +3

    Thanks!

    • @Jims-Garage
      @Jims-Garage  9 місяців тому +1

      Wow, thank you, that's extremely generous!

  • @chrisweeksnz
    @chrisweeksnz Рік тому +4

    Simply, keep up the great work!

  • @ramomammah
    @ramomammah 4 місяці тому +2

    Thanks

    • @Jims-Garage
      @Jims-Garage  4 місяці тому +1

      Thanks, that's extremely generous

  • @chrisumali9841
    @chrisumali9841 Рік тому +5

    Thanks for the demo and video, very concise and detailed. Have a great day

  • @mattiashedman8845
    @mattiashedman8845 Рік тому +4

    I've just the other day setup my headscale coordination server on a VPS and this was the natural next step. Thanks!
    Now I just need to to see if I should switch to a docker setup. I do run every other homelab thing as a container.

  • @toddzilla
    @toddzilla 5 місяців тому +3

    Love the cycling stuff on your wall (I know, not IT related…)

    • @Jims-Garage
      @Jims-Garage  5 місяців тому +3

      @@toddzilla thanks! I know a lot of guys in IT that also do extreme amounts of cycling 😁

  • @fedefede843
    @fedefede843 Рік тому +6

    Nice vid! it would be good to explore a bit more on how to use ACLs here.

    • @Jims-Garage
      @Jims-Garage  Рік тому +4

      Thanks for your feedback, I'm considering doing a follow up with a more advanced setup.

  • @BushMasterJM
    @BushMasterJM 9 місяців тому +3

    Amazing stuff, thank you!

  • @davidreitnecht1023
    @davidreitnecht1023 Рік тому +2

    Thank you so much for this video. You helped me decide!

    • @Jims-Garage
      @Jims-Garage  Рік тому

      You're welcome, glad it was useful

  • @vmerinom
    @vmerinom 6 місяців тому +2

    Thanks for the video! Regards from Chile

  • @pcm1ke
    @pcm1ke 11 місяців тому +3

    @jim have you tried deploying the headscale server behind traefik AND ALSO behind a cloudflare tunnel so you don’t have to expose your WAN in dns records (among other reasons)?

  • @myhometvaccount9365
    @myhometvaccount9365 Рік тому +1

    thanks works perfectly with pfsense tailscale addon :)

  • @osrrael
    @osrrael Рік тому +3

    genial, muchas gracias por compartir. saludos desde la region de la araucania en chile.

  • @olsenlid
    @olsenlid Рік тому

    Great video and great explanation! Will take a look at your other videos as well :)

    • @Jims-Garage
      @Jims-Garage  Рік тому

      Thank you. My recent video details how to do this involving a VPS in case you're stuck behind cgnat and cannot port forward.

  • @nicoladellino8124
    @nicoladellino8124 Рік тому +2

    Very useful video, THX.

    • @Jims-Garage
      @Jims-Garage  Рік тому +1

      Thanks, be sure to check out my other headscale video with an oracle VPS.

  • @MrTubeBoi-jk2pv
    @MrTubeBoi-jk2pv 9 місяців тому +3

    Really good video thanks!
    I set it to 1,25 playback speed which I found a great speed to listen to your voice.

    • @Jims-Garage
      @Jims-Garage  9 місяців тому +5

      Thanks. I'll try to speak 1.25x faster 😂

    • @MrTubeBoi-jk2pv
      @MrTubeBoi-jk2pv 9 місяців тому

      @@Jims-Garage 😂🙌

  • @Glatze603
    @Glatze603 Рік тому +1

    Very well done Jim 🙂

  • @TheSrefty
    @TheSrefty Рік тому +1

    Hi Jim, good work :) thank you for sharing

  • @l0gic23
    @l0gic23 Рік тому +3

    Wonders about putting headscale on a $5 Lenode with Pi-hole. Looking to br able to use secure DNS seemlessly at home and when mobile.
    I think right now my mobile browing goes direct to quad9 via android config, hypassing my piehoke when at home...
    Reason thinking Lenode is to better support family by letting them use that piehole, etc.
    Thoughts? Worth a video or crazy talk?

    • @Jims-Garage
      @Jims-Garage  Рік тому +2

      I have a separate video showing how to use a free oracle VPS with headscale. It should provide you with what you need.

  • @runema13
    @runema13 4 місяці тому +1

    insane video congrats

  • @jellevanburen9427
    @jellevanburen9427 9 місяців тому +5

    I've been trying to get it to work for months now. But no succes. It is probably partly due to my knowledge, but also there are some changes made: the latest version isn't supported anymore, the alpha5 shouldn't have headscale serve, but only serve. But alpha 5 isn't working correctly enough, etc. etc. I had 404 messages, derp issues, traefik errors. It has nothing to do with your video, but since it is very early in your homelab journey video's I just wanted to share this message also. That it is quite hard for relative 'beginners' in the journey if something doesn't match exactly like in the video. So at this point I'm giving up. Think I will revert to regular tailscale.

    • @Jims-Garage
      @Jims-Garage  9 місяців тому +3

      Thanks for letting me know. If it's changed significantly I'll likely do a new video.

  • @hugotorres9863
    @hugotorres9863 Рік тому +2

    Hello, dont know if I've missed it or if not mentioned. Is there a need to open ports on the firewall? Thank you for the great video

    • @Jims-Garage
      @Jims-Garage  Рік тому +2

      Thanks! It works over HTTPS, so you'd need 443 forwarded (or whatever DNAT you want).

    • @hugotorres9863
      @hugotorres9863 Рік тому +1

      @@Jims-Garage thank you for the answer. Have a good day!

  • @davisclark0776
    @davisclark0776 11 місяців тому +1

    Hi Jim! I followed up to 12:35 and created the API key using the command "headscale apikey create" then entered it in the Headscale API Key for the Headscale-UI. However I keep on getting "missing "Bearer" prefix in "Authorizaton" header client". I googled online and the github of headscale-Ui says "Your API key is either not saved or you haven't configured your reverse proxy, Create an API key in headscale (via command line) with headscale apikeys create or docker exec headscale apikeys create and save it in settings".
    Am I missing a step or something?

    • @georgebobolas6363
      @georgebobolas6363 10 місяців тому +1

      I have the exact same problem with the missing bearer in the API key :( Did you manage to figure what was the problem after all?

    • @davisclark0776
      @davisclark0776 10 місяців тому +1

      @@georgebobolas6363 Unfortunately I have not. I tried several more times with different ways but I still kept running into the issue. So I’m just using the CML now, which is honestly not that bad to learn.

    • @georgebobolas6363
      @georgebobolas6363 10 місяців тому

      @@davisclark0776 Thanks. I'll give it a few more tries and post an update in case I manage to work something out.

  • @dibbyo456
    @dibbyo456 4 місяці тому +1

    15:27 I want to exit from mobile from other network. Why won't it work?

    • @Jims-Garage
      @Jims-Garage  4 місяці тому

      Have you added routes and advertised all devices?

  • @mish2k
    @mish2k Рік тому +2

    Hello! Thanks for the video, i just set up tailscale yesterday moving from wireguard
    I noticed tailscale would allow only 3 users, not enough for a family, does headscale have this limit? And is possible to limit some users to some private services (for instance the family from portainer)
    I also was wondering if headscale would still use the 26 derp servers of Tailscale or also acts as one
    Subscribing for incoming videos!
    Edit: i saw has an embedded derp server, thats great even if may be less reliable

    • @Jims-Garage
      @Jims-Garage  Рік тому +2

      Hey, thanks. As Headscale is self-hosted there should be no limitations to users. I have tested with 5 with problem.

    • @mish2k
      @mish2k Рік тому +1

      @@Jims-Garage thats great, I would have included or at least advised to host the derp server too, the public ones limit you to 7mbps and all your traffic is routed over unknown servers. I would also have added that is not possible to serve UI and hs on different domains unless you fix the cors header

  • @hopeless128
    @hopeless128 11 місяців тому +1

    i love the poster in the background.

  • @khanhthedag7269
    @khanhthedag7269 7 місяців тому +1

    nicely explained. Thanks.
    Wireguard is easier to install and use, right?
    Headscale is better, faster and more secure than wireguard-easy?

    • @Jims-Garage
      @Jims-Garage  7 місяців тому

      Thanks 👍 no, both use the WireGuard protocol but for different purposes, they're both as secure from a protocol perspective. WireGuard-Easy is great for a simple point to point connection with multiple people. Headscale (or tailscale) is a mesh VPN. You have the ability to completely control how traffic is routed between devices (even through cgnat). If this is new to you then you probably want default WireGuard (or WireGuard-Easy).

    • @khanhthedag7269
      @khanhthedag7269 7 місяців тому +1

      ok. I use longtime wireguard-easy.
      now. I try to setup (like you) headscale.

  • @khanhthedag7269
    @khanhthedag7269 7 місяців тому +1

    ist netbird eine art wireguard. kennst du? ist ähnlich wie headscale? ist nicht so komplex zu setup, wie headscale?

    • @Jims-Garage
      @Jims-Garage  7 місяців тому +1

      Netbird also uses WireGuard

  • @basdfgwe
    @basdfgwe 11 місяців тому +1

    I tried getting this up and running behind cloudflare tunnels and it failed, headscale was logs said that I needed to have websocket enabled. I looked around and it was showing that I had websocket enabled...

    • @Jims-Garage
      @Jims-Garage  11 місяців тому

      It's probably the Cloudflare Tunnel blocking the traffic but I'm not certain. Try without?

  • @trojan6897
    @trojan6897 Рік тому +3

    Hi buddy awesome video , but this requires port forwarding right? If I am using hotspot of my android to connect and access internet in my Linux device this won't work right? Because no port forwarding available

    • @Jims-Garage
      @Jims-Garage  Рік тому +1

      Thanks 👍 this requires port 443 to be forwarded on the server side.
      I'm pretty sure that any device that is using your Android hotspot (e.g. a pc or laptop) should be able to access it. It should behave the same as accessing any website.

    • @trojan6897
      @trojan6897 Рік тому +2

      @@Jims-Garage yea any device that is on Hotspot is able to access, just that I was thinking if there was better way for hotspot user so that it could be accessible not just by hotspot user but by anyone anyways I don't think there is a way except tailscale and zero tier in that case but is there any possibility to make application hosted with them more secure like what I max could guess was to use authelia on local host to make them much more secure but can there be more ways and if yes then what are they.

    • @Jims-Garage
      @Jims-Garage  Рік тому +1

      @@trojan6897I recommend placing an Enterprise-Grade firewall in front of it, and perhaps running it through your proxy (e.g., Traefik) with Crowdsec enabled. I suspect that putting Authelia in the way might break things as it won't be able to complete the authentication journey.
      You could also just use something simple, like wg-easy that I showed in my other VPN video (that also uses WireGuard).

    • @trojan6897
      @trojan6897 Рік тому

      @@Jims-Garage setting up wireguard will also require port forwarding right?

    • @trojan6897
      @trojan6897 Рік тому

      @@Jims-Garage and buddy can u make video on how to become the node and selfhost with zero tier because I can't find any good video with that if we can become node and host our app on our node then it will be accessible by everyone I believe if possible research and make on it please ,will be very helpful

  • @durgeshkshirsagar5160
    @durgeshkshirsagar5160 4 місяці тому +1

    My ISP has setup CGNAT. I do not have any public IP. Can I setup headscale and use it with tailscale client? Thank you for the video.

    • @Jims-Garage
      @Jims-Garage  4 місяці тому +2

      Yes, but you'd need a node elsewhere that isn't behind cgnat (like a vps or a relative's house)

  • @armanis1234
    @armanis1234 8 місяців тому +1

    Hi, do you need to enable all 5 of them in your demo? thanks

    • @Jims-Garage
      @Jims-Garage  8 місяців тому

      You only need to enable the nodes you need. 2 is fine.

    • @armanis1234
      @armanis1234 8 місяців тому +1

      @@Jims-Garage still i don't get it, i can enable any will work? why they repeat only create 2 nodes but in node list show me 5

    • @Jims-Garage
      @Jims-Garage  8 місяців тому

      @@armanis1234 every device you add is a node. You can then route traffic however you want between nodes.

    • @armanis1234
      @armanis1234 8 місяців тому

      ​@@Jims-Garagesomething changed since you made a video, because i don't have any option to only run an exit node... on android app

  • @giokiborg
    @giokiborg Місяць тому +1

    Thanks a lot for this video, I am behind the NAT and can not open ports easily, this way is bit more tricky, but 100% free and very reliable,
    I noticed one problem, when tailscale client is connected to my headscale oracle server, private DNS on my android phone stops working, does any workaround exists for this?

    • @Jims-Garage
      @Jims-Garage  Місяць тому +1

      @@giokiborg change your DNS server to the local server. Everything should work as expected

  • @darthkielbasa
    @darthkielbasa Рік тому +4

    I’vee taken a look at the docs for headscale and was very apprehensive. This makes the process much more approachable IMO.
    Thank you!
    Are all British homes heated with radiators and boilers?

    • @Jims-Garage
      @Jims-Garage  Рік тому +1

      Thank you! I would say most homes have central heating, certainly with radiators. Either gas if you're on the grid, or oil if you're more remote.

  • @newmfat
    @newmfat Рік тому +1

    Tailscale is blocked where I live. Would this help me create my mesh network? I'm not sure if they have blocked only Tailscale or the Wireguard protocol.

    • @Jims-Garage
      @Jims-Garage  Рік тому +1

      Interesting. Worth checking if it's tailscale domains that are blocked first, can you access their website? If not, try deploying a simple WireGuard container first and testing. Next if that doesn't work try changing the port. If all that fails it's likely the protocol that's blocked. You can masquerade it but it's not bulletproof.

    • @newmfat
      @newmfat Рік тому

      @@Jims-Garage Thanks. Will try those steps. Tailscale website can be accessed. Btw what is masquerading and how could it help? Is the same technique used by Cloudflare Warp? Asking since warp continues to work in regions where Wireguard is blocked.

  • @t288msd
    @t288msd Рік тому +2

    Thanks for this. very informative. Tried to get running on a pi but sadly it doesn't work on arm/v7 only AMD64.

    • @Jims-Garage
      @Jims-Garage  Рік тому +2

      Hopefully that will change in the near future.

  • @khanhthedag7269
    @khanhthedag7269 7 місяців тому +1

    Hi Jims, I have a question, about portainer container console.
    it isn't work, if I click console on portainer (Error, Unable to retrieve image details).
    You have seen this Error? and how can I fix this?
    my portainer version (2.19.5). Docker version 26.1.3, build b72abbb
    thanks for help.

    • @Jims-Garage
      @Jims-Garage  7 місяців тому

      Try a different shell on the drop-down menu

    • @khanhthedag7269
      @khanhthedag7269 7 місяців тому

      @@Jims-Garage Thanks, where is the drop-down menu on portainer?
      I don't see it 😞

  • @ashoktvm
    @ashoktvm 4 місяці тому +1

    Is there limit in number of users?

    • @Jims-Garage
      @Jims-Garage  4 місяці тому +1

      I don't think so, at least not in a practical sense

  • @Daz2281
    @Daz2281 9 місяців тому +1

    I did not see any supporting docs for MacOS/iOS for headscale. Could you point me in the right direction?

    • @Jims-Garage
      @Jims-Garage  9 місяців тому

      You need to use the tailscale client.

    • @Daz2281
      @Daz2281 9 місяців тому

      @@Jims-Garage I did the same steps like you did for the win machine and it works great, but I did not see a spot to tap the three dots like you did for your android device. I also did not see anything for the MacOS side. TIA!

    • @Jims-Garage
      @Jims-Garage  9 місяців тому

      @@Daz2281 check out this Reddit post. It's in your phone settings for the app www.reddit.com/r/Tailscale/s/cZDq4pi1AJ

    • @Daz2281
      @Daz2281 9 місяців тому

      @@Jims-Garage YOU SIR ARE THE MAN!!!!!

    • @Daz2281
      @Daz2281 9 місяців тому +1

      @@Jims-Garage YOU SIR ARE THE MAN!!! Thank you!

  • @marktomlinson6922
    @marktomlinson6922 Рік тому +1

    great explanation, I have one question for yourself or anyone else reading this, so in a site1 to site2 setup pfsense1 to pfsense2 for a device behind pfsense 1 router how do you get it to be able to use the DNS from pfsense 2 to resolve and connect to a device behind pfsens2 router, advertised routes but what about advertising dns names?

    • @Jims-Garage
      @Jims-Garage  Рік тому

      You can specify the DNS server in the config. I guess when you share the route you just set it to your local DNS.

  • @omkarkulkarni3644
    @omkarkulkarni3644 2 місяці тому +1

    Unrelated but you've got amazing voice, can try mediation podcasts :P

    • @Jims-Garage
      @Jims-Garage  2 місяці тому

      Haha, so what you're saying is that I send you to 😴 lol

  • @Heynmffc
    @Heynmffc Рік тому +1

    8:24 no link 😞

    • @Jims-Garage
      @Jims-Garage  Рік тому

      Oops, let me fix that when I'm home

  • @abzbrk490
    @abzbrk490 Рік тому +2

    Excellent tutorial and explanation very appreciated thank you a sub and a 👍 deserved

  • @taoyeahright
    @taoyeahright Рік тому +1

    I have to use a computer at work where I can't install software, but need to control my VMware Workstation on my pc at home. I was going to use guacamole but its not that secure so that I was going to use cloudflare with guacamole, but then found out that cloudflare routes everything through them just as you described. I won't be doing much but logging into a guest account and controlling my VMs in there. Is Wireguard the solution? I thought tailscale would be the way to go but I can't install the software on my computer at work.

    • @Jims-Garage
      @Jims-Garage  Рік тому

      I don't think you can install WireGuard without admin privileges. You might need a HTTPS based VPN.

  • @joanandestin4201
    @joanandestin4201 Рік тому +1

    Hi, How are you doing? I have been trying deploy headscale in my homelab but no luck. I installed the app on my phone, added my custom domain but it returns no keys. I can go to the domain/windows and I can see the instructions. I am using nginx-proxy instead of traefik but that should not be an issue. Any thoughts?

    • @Jims-Garage
      @Jims-Garage  Рік тому

      So when you visit domain/windows there is no command to paste into the terminal?

    • @joanandestin4201
      @joanandestin4201 Рік тому

      @Jims-Garage there are commands there with the correct domain. But I tried to follow the process on the phone first. After clicking on sign in, it just hang there.

  • @cyberbud
    @cyberbud 3 місяці тому

    Hi Jim, this was a great video. However, I am using Proxmox now and it has LXC container for Headsclae in Helper Script. I was able to install it but not able to gidure out what to do after that. Can you make a video please ?

  • @Suhayl_Khatib
    @Suhayl_Khatib 11 місяців тому +1

    Dumb question but can this be deployed over UniFi’s stuff?

    • @Jims-Garage
      @Jims-Garage  11 місяців тому +1

      Yes, no different to the setup I demonstrated

    • @Suhayl_Khatib
      @Suhayl_Khatib 11 місяців тому

      @@Jims-Garage sweet!!

    • @Suhayl_Khatib
      @Suhayl_Khatib 11 місяців тому

      @@Jims-Garage I have another dumb question: is it possible to self host on Headscale and still somehow use Tailscale accounts? I really like both concepts.

  • @xccess21
    @xccess21 7 місяців тому +1

    is this only available to run in Linux?

    • @Jims-Garage
      @Jims-Garage  7 місяців тому

      Server, yes. Client, no.

  • @l0gic23
    @l0gic23 Рік тому

    Wiuld love to see more about your remote famiky support and remote backuo with anf for them.

  • @trivimlatinum8756
    @trivimlatinum8756 Місяць тому +1

    Are we locked to 3 users still (tailscale) or?

    • @Jims-Garage
      @Jims-Garage  Місяць тому

      3 users, but I think many devices per user

    • @trivimlatinum8756
      @trivimlatinum8756 Місяць тому +1

      @@Jims-Garage But using headscale should solve this, no?

    • @Jims-Garage
      @Jims-Garage  Місяць тому

      @trivimlatinum8756 correct

  • @Hanz-d7f
    @Hanz-d7f 2 місяці тому

    My country often blocks wireguard. Does that mean Headscale won't work?

    • @Jims-Garage
      @Jims-Garage  2 місяці тому +1

      Probably. You should be able to get around that with a VPS. Check my other Headscale video.

  • @st6531
    @st6531 Рік тому +1

    Would this setup work if I live outside China and want to install VPN server on an old Intel NUC device and place it behind the router in my friend’s house in China (with no public IP). I want to access Chinese websites. In particular, a Chinese server I am trying to get into will block my access if my IP is not in China. If this is doable, what should I install at my home if the device accessing the VPN server in China is an IOT device (e.g., vacuum robot)? Do I need another device installed at my place to serve as a VPN client? Sorry, I have no technical knowledge about networking. If you can provide links on how to install VPN server on NUC and recommend what device to use as a VPN client and provide link on how to install VPN client on such device, it would be greatly appreciated.

    • @Jims-Garage
      @Jims-Garage  Рік тому

      In theory, yes, but I've no means of testing it. Essentially you join a machine from inside China to the mesh and advertise it as an exit node. Then on another machine on the mesh you select the machine in China as your gateway (internet access).

  • @cesarkollenphowet
    @cesarkollenphowet Рік тому +1

    I was trying to use headscale on my homelab then i quit since i dont have a fixed public ip (my isp doesnt give that option)

    • @Jims-Garage
      @Jims-Garage  Рік тому +1

      Check my other headscale video that uses a VPS to overcome your problem.

    • @cesarkollenphowet
      @cesarkollenphowet Рік тому +1

      @@Jims-Garage i'll check it thank you

  • @shanagondaarun2436
    @shanagondaarun2436 10 місяців тому +2

    Thanks for a detailed video. From my underestanding and I could be wrong but it looks like we need a static ip with to setup the headscale server. Behind CGNAT is why people using Tailscale, isn't it.

    • @Jims-Garage
      @Jims-Garage  10 місяців тому +2

      In this example, yes. My other headscale video uses a VPS for those who are behind cgnat.

    • @shanagondaarun2436
      @shanagondaarun2436 10 місяців тому +2

      @@Jims-Garage Yes Jim, watched the other video as well. Thanks for that.

    • @burloiumarian2665
      @burloiumarian2665 6 місяців тому

      @@Jims-Garage can I make it work behind CGNAT if I have a No-IP DDNS registered?

  • @flove7808
    @flove7808 Рік тому +1

    02:00 I‘m sorry but the claim is completely wrong.
    The traffic is not routed through Tailscale‘s network.

    • @Jims-Garage
      @Jims-Garage  Рік тому

      Have a read of the documentation: tailscale.com/kb/1094/is-all-traffic-routed-through-tailscale
      Plus, authentication is still handled by them, it has to be. I don't have a problem with tailscale, I think it's good, but traffic absolutely has to touch their network otherwise it would be superfluous.

    • @flove7808
      @flove7808 Рік тому

      I wouldn’t call authentication and coordination traffic is passing through their network. It’s misleading.
      Their are edge cases (which you can turn off) where no P2P is possible and encrypted traffic is routed.
      I’m not defending Tailscale but that should be corrected.

  • @zeal514
    @zeal514 Рік тому

    hmm so my setup is slightly different. I use https all the way to traefik, not http. So when i try to set this up, traefik isn't handling the websockets properly. How can i fix this?

    • @Jims-Garage
      @Jims-Garage  Рік тому +1

      Hi, not sure I quite understand your comment. In my video and config it's HTTPS to Traefik, that is then routed to 8080 on Headscale. If you're using Traefik it should just work.
      What error are you facing?

  • @khanhthedag7269
    @khanhthedag7269 7 місяців тому

    netbird is a kind of wireguard. do you know? is similar to headscale? is not as complex to setup as headscale?

    • @alanjrobertson
      @alanjrobertson Місяць тому

      I tried self hosting netbird but could never get it to work between networks sadly

  • @SB-qm5wg
    @SB-qm5wg 8 місяців тому +1

    Good video. TY

  • @chelo-homelab
    @chelo-homelab 11 місяців тому +1

    Hi Jim, quick question.
    Is there a specific reason you deploy the containers via docker-compose instead of using Portainer Stacks?

    • @Jims-Garage
      @Jims-Garage  11 місяців тому +4

      Removes a dependency on Portainer for those who do not wish to use it. The great thing is that you can simply copy a compose over and it will work for both audiences.

  • @JGNiDK
    @JGNiDK 11 місяців тому +1

    Can I test this without taking down Tailscale first?

    • @Jims-Garage
      @Jims-Garage  11 місяців тому +1

      I don't believe it would conflict. At most, you'd need to change default ports.

    • @JGNiDK
      @JGNiDK 11 місяців тому +1

      @@Jims-Garage I might give it a chance. Either on my unRAID or Synology.

  • @Its-Just-Zip
    @Its-Just-Zip Місяць тому +1

    Headscale is great but i reccomend tailscale for the same reason I still use tailscale myself.
    I dont want to punch a hole in my firewall or deal with something like duckDNS.
    And while I could stand up a VPS with akami or the like to run my headscale instance, its just more cost and time then I am currently willing to put in.
    Maybe once tailscale hits its crap phase like most other internet services ill fully jump ships but until then ill keep watching and testing headscale while using tailscale in my production setups.

    • @Jims-Garage
      @Jims-Garage  Місяць тому

      Yeah, I can't fault that approach. Here's to hoping Tailscale remains awesome.

  • @LampJustin
    @LampJustin Рік тому +6

    Have you heard of netbird? It's a nicer alternative to Tailscale/Headscale. It can be selfhosted, does have a nice GUI and can be integrated with Keycloak ;)

    • @Jims-Garage
      @Jims-Garage  Рік тому +5

      I haven't, let me check that out. Thanks for the info.

    • @mish2k
      @mish2k Рік тому +1

      after a bit of roaming I noticed netbird misses of the exitnode feature and "taildrop" feature + the netbird gui would also be avialable when selfhosted?

    • @alanjrobertson
      @alanjrobertson Місяць тому

      I couldn't get Netbird self hosting to work, tried for ages. Could get peer to peer working on same network but not to other networks.

  • @williamsnowball4267
    @williamsnowball4267 Рік тому

    Thank you for the amazing tutorial! I just had a quick question, is it possible to remotely access one of my VMs such as a windows server from proxmox with this?

    • @Jims-Garage
      @Jims-Garage  Рік тому +1

      Yes, absolutely. Either install the client on the VM, or put it on another device in the network (e.g., a 'jump box') and connect via something like RDP.

    • @williamsnowball4267
      @williamsnowball4267 Рік тому

      @@Jims-Garage I’ll definitely look into installing it onto the client, I’ve been wanting to do RDP and give it to someone outside my network to connect to but everyone keeps telling me how unsafe it is and etc.

    • @Jims-Garage
      @Jims-Garage  Рік тому +1

      @@williamsnowball4267 for starters you might be better off with my WireGuard video, it's much simpler and achieves basically the same thing for your use case.

    • @williamsnowball4267
      @williamsnowball4267 Рік тому

      @@Jims-Garage Alright, I’ll go watch it right now. I’ve been basically wanting to host a VM mainly windows machine for a few of my friends to use for there needs, unfortunately since I’m on a home network it’s been a lot harder to do.

  • @HasnainReza
    @HasnainReza Рік тому +2

    Hi Jim, I noticed you mentioned that both sub-domains have to be the same but I'm just wondering how that is possible since both headscale and headscale ui are on different ports. I'm not running this behind traefik but instead am using haproxy since I use that for all my other sub-domains. Thanks

    • @Jims-Garage
      @Jims-Garage  Рік тому

      It's because headscale is served from / and the UI is served from /web. You can check the config on the UI documentation, it explains it in the docker compose example. That uses Traefik but it should be possible on haproxy.

    • @HasnainReza
      @HasnainReza Рік тому +1

      @@Jims-Garage Got it. let me try to configure it on my haproxy. Thanks

    • @yanglob
      @yanglob Рік тому +1

      I still can't figure it out with my Haproxy. Have you made it work?

  • @zyghom
    @zyghom 10 місяців тому

    great, but how to connect MacOS client - there are no 3 dots ;-(

  • @danielschmidt1502
    @danielschmidt1502 Рік тому +1

    Thanks for the video.
    Have only one problem. I use Swag with nginx have someone a working nginx config?

    • @Jims-Garage
      @Jims-Garage  Рік тому +1

      Sorry, I don't have one. Perhaps someone on the Discord could help you with that.

  • @NathanSweet
    @NathanSweet Місяць тому +1

    Didn't explain why I'm creating a user per device.

    • @Jims-Garage
      @Jims-Garage  Місяць тому +1

      Gives you the option to add more people was my rationale but appreciate I might not have stipulated that.

    • @NathanSweet
      @NathanSweet Місяць тому

      @@Jims-Garage Tailscale and headscale docs also don't explain it well. There's users, tags, and groups of users. There's lots of schemes that could be used, but it's hard for new users (ie, me!) to choose one. The flexibility might be good (it's hard to judge as a noob, maybe it's overly complex) but the learning curve is steep.
      The "tailscale way" is nodes a user uses get a user, else they get a tag. You can only have a user OR a tag, not both. Except in headscale you CAN have both (in fact are forced to, can't add a node with only tags) which is odd.
      Another way might be to use a single user and use tags for everything. That sounds like it'd work OK. Tailscale warns not to do this, because when a user goes away their tagged nodes don't, but I have a small network and can easily manage that.
      Also consider taildrop (which sends files to other nodes, super cool eg from Android to desktop) can only send to nodes the same user owns. With one user that is any node, otherwise it's more limited. With one user per node, taildrop isn't useful at all.

  • @inflatablemicrowave8187
    @inflatablemicrowave8187 5 місяців тому +1

    All of the guides surrounding this need an overhaul now unfortunately. Tried this and had an immense amount of issues, mostly centered around the handling of the headscale repo and how they are handling the versions.
    A few things for anyone doing this nowadays:
    1. The latest version tag is deprecated, you MUST specify a target version.
    2. You need to grab the version of the config.yaml that is specific to your target version and not pull the one specified in the guide. If you pull the latest config it will NOT work with the version shown in the video.
    3. If you aren't using portainer, use "docker exec (headscale container id) (command, ie headscale routes list)" to use the console instead.
    4. The android app had an overhaul that redesigns the UI. If you would like to change it now, tap the gear and go to Accounts > 3 dots top right > use an alternate server
    Its great, I just wish that the documentation wasn't so godawful and incorrect.

    • @Jims-Garage
      @Jims-Garage  5 місяців тому +1

      @@inflatablemicrowave8187 check my last video, I revisited headscale.

    • @inflatablemicrowave8187
      @inflatablemicrowave8187 5 місяців тому +1

      @@Jims-Garage Thank you! It didn't show up in my youtube search for some reason.
      I checked out the new guide, and it looks pretty good. Is there a compose file you have without traefik, though? I use npm instead, and I am sure many others do.

    • @Jims-Garage
      @Jims-Garage  5 місяців тому +2

      @@inflatablemicrowave8187 I don't, sorry. I might cover it in the future. Hard to accommodate every variable.

    • @inflatablemicrowave8187
      @inflatablemicrowave8187 5 місяців тому +1

      @@Jims-Garage please do, I would appreciate it immensely. There only seem to be 2 main options in the proxy world right now, traefik and npm. Not sure if any other ones have much traction in the self hosted community right now. Are there? Still learning, sorry.

    • @Jims-Garage
      @Jims-Garage  5 місяців тому +1

      @@inflatablemicrowave8187 Traefik, nginx and caddy are probably the most common (along with Apache but that's a little different). I don't use npm due to its poor security record.

  • @YourModulesMayVary
    @YourModulesMayVary 11 місяців тому +1

    great vid content, some feedback on the slides, the transitions are a bit 2000's powerpointy and hurt my head ;-)

    • @Jims-Garage
      @Jims-Garage  11 місяців тому +2

      Haha, thanks. Will see what I can do (editing kills me inside).

  • @fedefede843
    @fedefede843 Рік тому +1

    After several month using Tailscale, just came back here, just to share my experience so far. It has been great, but the mobile app is a battery killer. It has become so bad, that I am trying to move away Tailscale. I am using Android, every time I have to leave home and 4G data is used instead, it kills it. The consume is aberrant. And I really like to keep connected all the time automatically, and not managing it by hand when I need it, just to avoid the battery consuption.
    Have any of you guys experienced something like that?
    My next stop is what I was considering at the very beginning, Nebula.

    • @Jims-Garage
      @Jims-Garage  Рік тому +1

      That's bad to hear, I haven't experienced that. What phone and Android OS version are you running? Newer models should have it baked into the kernel. FYI I have a pixel 6 pro

    • @fedefede843
      @fedefede843 Рік тому

      ​@@Jims-Garage Hi Jim, I am using Android 13. I have read about it, and it seems a common issue for the mobile app (both Android and iOS). They have a post in where explain and acknowledge the issue, but it seems it is not simple to fix.
      Have you checked your app consumption stats while connected to the mobile network? I was really happy with it until I saw that :/

  • @dankkster
    @dankkster 10 місяців тому +1

    the UI refuses to work based on this config and github is no more helpful for it.

  • @BryanSeitz
    @BryanSeitz 9 місяців тому +1

    The traffic is NOT routed through their network, it only opens up connections to bypass NAT and such.

    • @Jims-Garage
      @Jims-Garage  9 місяців тому +2

      Read their documents. If a direct connection isn't available it goes over their network.

  • @Snoekverslaafde
    @Snoekverslaafde 6 місяців тому +1

    no longer working...

    • @Jims-Garage
      @Jims-Garage  6 місяців тому +1

      I'm going to come back to headscale in the near future

  • @tonyc1036
    @tonyc1036 Рік тому +2

    Bro.... the db.sqlite file goes in the keys directory (not config directory) as per your config.yaml file and docker-compose volumes section. This is your first error, but not a big deal. Second error, you completely skip over how to make the subdomain resolve to the headscale server. Maybe or maybe not, ppl should understand that from your other video. But you don't even make _that_ clear. You just skip over it.
    What you're doing with your homelab series is fine, but its just incomplete.

    • @Jims-Garage
      @Jims-Garage  Рік тому +3

      Thanks for your feedback. According to official docs the db resides in /etc/headscale which is mounted to /config locally (unless I'm misunderstanding you). You're right I skip over some of the subdomain low level details, that's because I've covered it in detail in previous videos in the series and I cannot retread the same items each video.

  • @yagoa
    @yagoa Рік тому

    You forgot to mention that there are native ARM and X86 MacOS HeadScale servers

    • @Jims-Garage
      @Jims-Garage  Рік тому +2

      Check 02:24 - that shows all of the available clients.

    • @yagoa
      @yagoa Рік тому +1

      sorry I meant servers @@Jims-Garage

  • @yagoa
    @yagoa Рік тому +1

    Wonderful project, but dislike for using docker

    • @Jims-Garage
      @Jims-Garage  Рік тому +2

      Why don't you like it using Docker?

    • @yagoa
      @yagoa Рік тому +1

      I have compared several docker containers to native and we're talking 10x ram usage and 4x cpu usage... I can bet there is some latency penalty as well.

  • @TrevorPhilipsBro
    @TrevorPhilipsBro Рік тому +1

    Is it faster?

    • @Jims-Garage
      @Jims-Garage  Рік тому +1

      On paper it should be as it cuts out 3rd party infrastructure.