You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've got a working PoC build on Alpine Linux (I think). After following the build instructions, the only difference is to replace apt stuff with apk (Alpine's package keeper software):
# install dependencies
doas apk add libmsquic dotnet9-sdk git curl
# the rest can be done as normal
git clone --depth 1 https://github.com/TechnitiumSoftware/TechnitiumLibrary.git TechnitiumLibrary
git clone --depth 1 https://github.com/TechnitiumSoftware/DnsServer.git DnsServer
dotnet build TechnitiumLibrary/TechnitiumLibrary.ByteTree/TechnitiumLibrary.ByteTree.csproj -c Release
dotnet build TechnitiumLibrary/TechnitiumLibrary.Net/TechnitiumLibrary.Net.csproj -c Release
dotnet build TechnitiumLibrary/TechnitiumLibrary.Security.OTP/TechnitiumLibrary.Security.OTP.csproj -c Release
dotnet publish DnsServer/DnsServerApp/DnsServerApp.csproj -c Release
libmsquic and dotnet9-sdk are available on the edge and v3.23 releases, so no need to configure any external repositories. After building you can launch the binary from ./DnsServer/DnsServerApp/bin/Release/DnsServerApp
On a Raspberry Pi 4 it compiles under 2 minutes, so the process is quite fast. I was able to test that all the Optional Protocols including DoQ work fine.
Docker
I'm doing this as part of building an Alpine-based Technitium container for personal use. The container-based build process can be done as below:
For the runtime, only aspnetcore9-runtime is needed to get Technitium started. I'm using doggo instead of dnsutils for DNS troubleshooting, but you can replace that package with what you want too.
The resulting image on x86_64 is 166MB, which is 100MB smaller than Technitium's official image. I guess using something like distroless could shrink the image size even more, but this is good for now.
I think the normal Dockerfile can use dotnet/aspnet:9.0-alpine3.23 as a smaller alternative too, but seeing from past developments it can bring in more maintenance issues. There was #1046 which implemented support for chisel, but was later reverted in #1053 due to some libmsquic difficulties.
OpenRC
PR #1461 includes an openrc.service file to use with the OpenRC service manager. I don't have any experience with it though
What else
I believe building (and publishing) an actual APKBUILD file for inclusion in Alpine Linux repos is doable, though I don't have any experience with them either
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I've got a working PoC build on Alpine Linux (I think). After following the build instructions, the only difference is to replace apt stuff with apk (Alpine's package keeper software):
libmsquicanddotnet9-sdkare available on the edge and v3.23 releases, so no need to configure any external repositories. After building you can launch the binary from./DnsServer/DnsServerApp/bin/Release/DnsServerAppOn a Raspberry Pi 4 it compiles under 2 minutes, so the process is quite fast. I was able to test that all the Optional Protocols including DoQ work fine.
Docker
I'm doing this as part of building an Alpine-based Technitium container for personal use. The container-based build process can be done as below:
Dockerfile
For the runtime, only
aspnetcore9-runtimeis needed to get Technitium started. I'm usingdoggoinstead ofdnsutilsfor DNS troubleshooting, but you can replace that package with what you want too.The resulting image on x86_64 is 166MB, which is 100MB smaller than Technitium's official image. I guess using something like distroless could shrink the image size even more, but this is good for now.
I think the normal Dockerfile can use
dotnet/aspnet:9.0-alpine3.23as a smaller alternative too, but seeing from past developments it can bring in more maintenance issues. There was #1046 which implemented support forchisel, but was later reverted in #1053 due to some libmsquic difficulties.OpenRC
PR #1461 includes an
openrc.servicefile to use with the OpenRC service manager. I don't have any experience with it thoughWhat else
I believe building (and publishing) an actual
APKBUILDfile for inclusion in Alpine Linux repos is doable, though I don't have any experience with them eitherBeta Was this translation helpful? Give feedback.
All reactions