Running Dagger Pipelines on Sourcehut
I was excited to get Dagger running on sourcehut this week because it combines a few of my favorite things. Dagger, of course, the place where I work. And sourcehut, a bad ass team of indie hackers, led by Drew DeVault on a mission to create a truly open home for open source projects on the web. It is an entire suite of services including git hosting, issue tracker, wiki, mailing list, static site hosting, and of course a fully functional CI build system.
While sourcehut provides a great general purpose CI build system, it does not yet have any caching provided by default. This means that for nontrivial projects you may find yourself spending a ton of time redownloading dependencies every time you run a build. This makes sourcehut the perfect fit for Dagger Cloud since it provides caching out of the box.
I attempted to get a simple POC up and running using the early release
of Dagger modules. I initially tried to get this working on the
alpine/latest image, but I ran into some roadblocks because Docker in
Docker was complaining about some networking permissions. I was happy to
see that this works pretty much out of the box using the provided
ubuntu/lts image.
All the code shared in this post is available in this demo repo.
image: ubuntu/lts
secrets:
- 234d6ffa-82da-445b-ab32-8b388c51da4d
shell: true
tasks:
- install_docker: |
sudo apt update
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
sudo usermod -aG docker $USER
- install_dagger: |
cd /usr/local && { curl -L https://dl.dagger.io/dagger/install.sh | sudo sh; cd -; }
- add_secret_to_env: |
cat << EOF >> .buildenv
export DAGGER_CLOUD_TOKEN=$(cat ~/.dagger_cloud_token)
EOF
- run_dagger: |
cd dagger-demo
pwd
dagger version
dagger call -m ci container-echo --string-arg 'it works!'
- stop_dagger_engine: |
docker stop -t 300 $(docker ps --filter name="dagger-engine-*" -q)
Thank you for reading! Share your thoughts with me on bluesky, mastodon, or via email.
Check out some more stuff to read down below.
Most popular posts this month
- SQLite DB Migrations with PRAGMA user_version
- Making cgit Pretty
- Using cgit
- My Custom Miniflux CSS Theme
- Convert Markdown to PDF in Sublime Text
Recent Favorite Blog Posts
This is a collection of the last 8 posts that I bookmarked.
- Rewrote my blog with Zine from Drew DeVault's blog
- A eulogy for Vim from Drew DeVault's blog
- Pluralistic: AI "journalists" prove that media bosses don't give a shit (11 Mar 2026) from Pluralistic: Daily links from Cory Doctorow
- Avi Alkalay: Uniqlo T-Shirt Bash Script Easter Egg from Fedora People
- Offline 23 hours a day from Derek Sivers blog
- Pluralistic: California can stop Larry Ellison from buying Warners (28 Feb 2026) from Pluralistic: Daily links from Cory Doctorow
- On Alliances from Smashing Frames
- Acting ethically in an imperfect world from Smashing Frames
Articles from blogs I follow around the net
“Plain text has been around for decades and it’s here to stay.”
There’s a category of “plain text” or “ASCII” diagramming and UI design tools: Mockdown – works immediately on the web, even on mobile Wiretext – works on the web, but desktop only Monodraw – a Mac app I believe these are used by people who prefer intentio...
via Unsung April 24, 2026Pluralistic: A free, open visual identity for enshittification (24 Apr 2026)
Today's links A free, open visual identity for enshittification: No mere poop emoji! Hey look at this: Delights to delectate. Object permanence: RIAA v little girl; Portal turret Easter egg; Atari v indie games; Chabon's Phantom Tollbooth intro; The 0.1%;...
via Pluralistic: Daily links from Cory Doctorow April 24, 2026Nicolas Solerieu
This week on the People and Blogs series we have an interview with Nicolas Solerieu, whose blog can be found at slrncl.com/blog. Tired of RSS? Read this in your browser or sign up for the newsletter. People and Blogs is supported by the "One a Month" club...
via Manuel Moreale — Everything Feed April 24, 2026Generated by openring