Compare commits

...

17 commits

Author SHA1 Message Date
Kristoffer Dalby
72a5a123ef
Merge 46ccfff71d into a7874af3d0 2024-11-16 20:35:58 +13:00
nblock
a7874af3d0
Use discord server invite link (#2235)
Some checks failed
Build / build (push) Has been cancelled
Build documentation / build (push) Has been cancelled
Build documentation / deploy (push) Has been cancelled
Tests / test (push) Has been cancelled
Replace channel links with links to discord invite link and remove
channel list.

Fixes: #1521
2024-11-16 07:06:15 +01:00
Kristoffer Dalby
46ccfff71d
pull_request_target
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
2024-08-13 08:43:47 +02:00
Kristoffer Dalby
71607ae13c
disable sbom
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
2024-08-13 08:35:29 +02:00
Kristoffer Dalby
8e26fcfeea
remove pr number again
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
2024-08-13 08:24:21 +02:00
Kristoffer Dalby
610223df67
add back pr attempt in hope for more perms
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
2024-08-12 10:04:42 +02:00
Kristoffer Dalby
10a9eda893
restore write all
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
2024-08-12 09:56:02 +02:00
Kristoffer Dalby
9a4c7e4446
run ko with nix
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
2024-08-12 09:48:47 +02:00
Kristoffer Dalby
aba61ceb1b
test without pr number
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
2024-08-12 09:47:21 +02:00
Kristoffer Dalby
1efb817acc
all
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
2024-08-12 09:29:52 +02:00
Kristoffer Dalby
49952dda40
derp
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
2024-08-12 09:27:30 +02:00
Kristoffer Dalby
53a08e5ab6
derp
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
2024-08-12 09:26:23 +02:00
Kristoffer Dalby
52cce46cd8
debug pr number
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
2024-08-12 09:22:29 +02:00
Kristoffer Dalby
68669238f9
debug pr name
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
2024-08-12 09:18:04 +02:00
Kristoffer Dalby
0d6a25d6ee
env it
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
2024-08-12 09:16:50 +02:00
Kristoffer Dalby
e1416a72cb
make it so ko.yaml changes trigger build
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
2024-08-12 09:15:15 +02:00
Kristoffer Dalby
cec46716b6
build docker images on PR
Sometimes we want people to test features in PRs and
not everyone is used to using git, build go and docker.

This commit builds docker containers and pushes them to
GHCR (not dockerhub) for testing on pushes to branches
that has open pull requests to main using Ko.
This is configured to mimic the debug images produced
by goreleaser.

Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
2024-08-12 09:09:08 +02:00
11 changed files with 124 additions and 54 deletions

71
.github/workflows/build-docker-pr.yml vendored Normal file
View file

@ -0,0 +1,71 @@
name: Build
on:
push:
branches:
- main
pull_request:
branches:
- main
concurrency:
group: ${{ github.workflow }}-$${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
permissions: write-all
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Get changed files
id: changed-files
uses: dorny/paths-filter@v3
with:
filters: |
files:
- '*.nix'
- 'go.*'
- '**/*.go'
- 'integration_test/'
- 'config-example.yaml'
- uses: DeterminateSystems/nix-installer-action@main
if: steps.changed-files.outputs.files == 'true'
- uses: DeterminateSystems/magic-nix-cache-action@main
if: steps.changed-files.outputs.files == 'true'
- name: Run build
id: build
if: steps.changed-files.outputs.files == 'true'
run: |
nix build |& tee build-result
BUILD_STATUS="${PIPESTATUS[0]}"
OLD_HASH=$(cat build-result | grep specified: | awk -F ':' '{print $2}' | sed 's/ //g')
NEW_HASH=$(cat build-result | grep got: | awk -F ':' '{print $2}' | sed 's/ //g')
echo "OLD_HASH=$OLD_HASH" >> $GITHUB_OUTPUT
echo "NEW_HASH=$NEW_HASH" >> $GITHUB_OUTPUT
exit $BUILD_STATUS
- name: Nix gosum diverging
uses: actions/github-script@v6
if: failure() && steps.build.outcome == 'failure'
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
github.rest.pulls.createReviewComment({
pull_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: 'Nix build failed with wrong gosum, please update "vendorSha256" (${{ steps.build.outputs.OLD_HASH }}) for the "headscale" package in flake.nix with the new SHA: ${{ steps.build.outputs.NEW_HASH }}'
})
- uses: actions/upload-artifact@v4
if: steps.changed-files.outputs.files == 'true'
with:
name: headscale-linux
path: result/bin/headscale

View file

@ -1,10 +1,7 @@
name: Build name: Build Docker images for PRs
on: on:
push: pull_request_target:
branches:
- main
pull_request:
branches: branches:
- main - main
@ -31,41 +28,34 @@ jobs:
- '**/*.go' - '**/*.go'
- 'integration_test/' - 'integration_test/'
- 'config-example.yaml' - 'config-example.yaml'
- '.ko.yaml'
- uses: DeterminateSystems/nix-installer-action@main - uses: DeterminateSystems/nix-installer-action@main
if: steps.changed-files.outputs.files == 'true' if: steps.changed-files.outputs.files == 'true'
- uses: DeterminateSystems/magic-nix-cache-action@main - uses: DeterminateSystems/magic-nix-cache-action@main
if: steps.changed-files.outputs.files == 'true' if: steps.changed-files.outputs.files == 'true'
- name: Run build # - uses: actions/github-script@v7
# id: get_pr_data
# with:
# script: |
# return (
# await github.rest.repos.listPullRequestsAssociatedWithCommit({
# commit_sha: context.sha,
# owner: context.repo.owner,
# repo: context.repo.repo,
# })
# ).data[0];
# - name: Pull Request data
# run: |
# echo '${{steps.get_pr_data.outputs.result}}'
- name: Run ko build
id: build id: build
if: steps.changed-files.outputs.files == 'true' if: steps.changed-files.outputs.files == 'true'
env:
KO_DOCKER_REPO: ghcr.io/${{ github.repository_owner }}/headscale
# TAG_PR_NAME: pr-${{ fromJson(steps.get_pr_data.outputs.result).number }}
TAG_SHA: ${{ github.sha }}
run: | run: |
nix build |& tee build-result nix develop --command -- ko build --sbom=none --tags=$TAG_SHA ./cmd/headscale
BUILD_STATUS="${PIPESTATUS[0]}"
OLD_HASH=$(cat build-result | grep specified: | awk -F ':' '{print $2}' | sed 's/ //g')
NEW_HASH=$(cat build-result | grep got: | awk -F ':' '{print $2}' | sed 's/ //g')
echo "OLD_HASH=$OLD_HASH" >> $GITHUB_OUTPUT
echo "NEW_HASH=$NEW_HASH" >> $GITHUB_OUTPUT
exit $BUILD_STATUS
- name: Nix gosum diverging
uses: actions/github-script@v6
if: failure() && steps.build.outcome == 'failure'
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
github.rest.pulls.createReviewComment({
pull_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: 'Nix build failed with wrong gosum, please update "vendorSha256" (${{ steps.build.outputs.OLD_HASH }}) for the "headscale" package in flake.nix with the new SHA: ${{ steps.build.outputs.NEW_HASH }}'
})
- uses: actions/upload-artifact@v4
if: steps.changed-files.outputs.files == 'true'
with:
name: headscale-linux
path: result/bin/headscale

View file

@ -28,8 +28,6 @@ builds:
- -mod=readonly - -mod=readonly
ldflags: ldflags:
- -s -w -X github.com/juanfont/headscale/cmd/headscale/cli.Version=v{{.Version}} - -s -w -X github.com/juanfont/headscale/cmd/headscale/cli.Version=v{{.Version}}
tags:
- ts2019
archives: archives:
- id: golang-cross - id: golang-cross

16
.ko.yaml Normal file
View file

@ -0,0 +1,16 @@
defaultBaseImage: gcr.io/distroless/base-debian12:debug
defaultPlatforms:
- linux/arm64
- linux/arm/v7
- linux/amd64
- linux/386
builds:
- id: headscale
main: ./cmd/headscale
env:
- CGO_ENABLED=0
flags:
- -mod=readonly
ldflags:
- -s -w -X github.com/juanfont/headscale/cmd/headscale/cli.Version=v{{.Git.ShortCommit}}

View file

@ -62,7 +62,7 @@ event.
Instances of abusive, harassing, or otherwise unacceptable behavior Instances of abusive, harassing, or otherwise unacceptable behavior
may be reported to the community leaders responsible for enforcement may be reported to the community leaders responsible for enforcement
at our Discord channel. All complaints on our [Discord server](https://discord.gg/c84AZQhmpx). All complaints
will be reviewed and investigated promptly and fairly. will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and All community leaders are obligated to respect the privacy and

View file

@ -4,7 +4,7 @@
An open source, self-hosted implementation of the Tailscale control server. An open source, self-hosted implementation of the Tailscale control server.
Join our [Discord](https://discord.gg/c84AZQhmpx) server for a chat. Join our [Discord server](https://discord.gg/c84AZQhmpx) for a chat.
**Note:** Always select the same GitHub tag as the released version you use **Note:** Always select the same GitHub tag as the released version you use
to ensure you have the correct example configuration and documentation. to ensure you have the correct example configuration and documentation.

View file

@ -41,13 +41,15 @@ In addition to that, you may use packages provided by the community or from dist
[installation guide using community packages](../setup/install/community.md). [installation guide using community packages](../setup/install/community.md).
For convenience, we also [build Docker images with headscale](../setup/install/container.md). But **please be aware that For convenience, we also [build Docker images with headscale](../setup/install/container.md). But **please be aware that
we don't officially support deploying headscale using Docker**. We have a [Discord we don't officially support deploying headscale using Docker**. On our [Discord server](https://discord.gg/c84AZQhmpx)
channel](https://discord.com/channels/896711691637780480/1070619770942148618) where you can ask for Docker-specific help we have a "docker-issues" channel where you can ask for Docker-specific help to the community.
to the community.
## Why is my reverse proxy not working with headscale? ## Why is my reverse proxy not working with headscale?
We don't know. We don't use reverse proxies with headscale ourselves, so we don't have any experience with them. We have [community documentation](../ref/integration/reverse-proxy.md) on how to configure various reverse proxies, and a dedicated [Discord channel](https://discord.com/channels/896711691637780480/1070619818346164324) where you can ask for help to the community. We don't know. We don't use reverse proxies with headscale ourselves, so we don't have any experience with them. We have
[community documentation](../ref/integration/reverse-proxy.md) on how to configure various reverse proxies, and a
dedicated "reverse-proxy-issues" channel on our [Discord server](https://discord.gg/c84AZQhmpx) where you can ask for
help to the community.
## Can I use headscale and tailscale on the same machine? ## Can I use headscale and tailscale on the same machine?

View file

@ -1,11 +1,5 @@
# Getting help # Getting help
Join our Discord server for announcements and community support: Join our [Discord server](https://discord.gg/c84AZQhmpx) for announcements and community support.
- [announcements](https://discord.com/channels/896711691637780480/896711692120129538)
- [general](https://discord.com/channels/896711691637780480/896711692120129540)
- [docker-issues](https://discord.com/channels/896711691637780480/1070619770942148618)
- [reverse-proxy-issues](https://discord.com/channels/896711691637780480/1070619818346164324)
- [web-interfaces](https://discord.com/channels/896711691637780480/1105842846386356294)
Please report bugs via [GitHub issues](https://github.com/juanfont/headscale/issues) Please report bugs via [GitHub issues](https://github.com/juanfont/headscale/issues)

View file

@ -6,5 +6,4 @@ code archives. Container images are available on [Docker Hub](https://hub.docker
An Atom/RSS feed of headscale releases is available [here](https://github.com/juanfont/headscale/releases.atom). An Atom/RSS feed of headscale releases is available [here](https://github.com/juanfont/headscale/releases.atom).
Join the ["announcements" channel on Discord](https://discord.com/channels/896711691637780480/896711692120129538) for See the "announcements" channel on our [Discord server](https://discord.gg/c84AZQhmpx) for news about headscale.
news about headscale.

View file

@ -10,7 +10,7 @@ Headscale is an open source, self-hosted implementation of the Tailscale control
This page contains the documentation for the latest version of headscale. Please also check our [FAQ](./about/faq.md). This page contains the documentation for the latest version of headscale. Please also check our [FAQ](./about/faq.md).
Join our [Discord](https://discord.gg/c84AZQhmpx) server for a chat and community support. Join our [Discord server](https://discord.gg/c84AZQhmpx) for a chat and community support.
## Design goal ## Design goal

View file

@ -16,4 +16,4 @@ Headscale doesn't provide a built-in web interface but users may pick one from t
| headscale-admin | [Github](https://github.com/GoodiesHQ/headscale-admin) | Headscale-Admin is meant to be a simple, modern web interface for headscale | | headscale-admin | [Github](https://github.com/GoodiesHQ/headscale-admin) | Headscale-Admin is meant to be a simple, modern web interface for headscale |
| ouroboros | [Github](https://github.com/yellowsink/ouroboros) | Ouroboros is designed for users to manage their own devices, rather than for admins | | ouroboros | [Github](https://github.com/yellowsink/ouroboros) | Ouroboros is designed for users to manage their own devices, rather than for admins |
You can ask for support on our dedicated [Discord channel](https://discord.com/channels/896711691637780480/1105842846386356294). You can ask for support on our [Discord server](https://discord.gg/c84AZQhmpx) in the "web-interfaces" channel.