Today I made some progress in building an API client for the Obnam server API. I would have made more progress, had I not ran into a mistake I made a long time ago. Younger me was careless, again.

Obnam is my backup program, in development. I'm building it because I can't not. If you'd like Obnam to serve your needs, get in touch.

https://obnam.org/blog/2026/11-client/

#Obnam
#backupImplementation

Obnam: client for server

Today I combined the Subplot documents for the client and server into one. This is preparation for verifying they work together.

Obnam is my backup program, in development. I'm building it because I can't not. If you'd like Obnam to serve your needs, get in touch.

https://obnam.org/blog/2026/10-subplot-refactor/

#Obnam
#backupImplementation

Obnam: refactor subplots

Today in Obnam development I added implemented the start of chunk management in the server API: upload, download, and delete chunks, and search for them by label. This is a conceptually very big step. Next up is making chunk storage persistent...

Obnam is my backup program, in development. I'm building it because I can't not. If you'd like Obnam to serve your needs, get in touch.

https://obnam.org/blog/2026/09-api-get-put-chunks/

#Obnam
#backupImplementation

Obnam server API: GET and PUT chunks

Today in Obnam development I added to the test suite a way to run the server as a daemon. This allows me to verify HTTP API end points work as required, without any silly shenanigans.

Obnam is my backup program, in development. I'm building it because I can't not. If you'd like Obnam to serve your needs, get in touch.

https://obnam.org/blog/2026/08-daemons/

#Obnam
#backupImplementation

Obnam server API: managing a daemon in test suite

Today in Obnam development I added the first acceptance tests for the Obnam server. For now, it's only the command line. I need to figure out how to easily and reliably run the server in the background while I test the HTTP API I'll be building.

Obnam is my backup program, in development.

https://obnam.org/blog/2026/07/

#Obnam
#backupImplementation

Today in Obnam development I implemented a "GET /validate" end point. Which meant actually adding HTTP API functionality. Axum and Tokio for the win.

Obnam is my backup program, in development.

https://obnam.org/blog/2026/06/

#Obnam
#backupImplementation

Obnam server API: token validation in requests

I continued work on the Obnam server API. The server can now generate API tokens and validate them on the command line. This is preparation for requiring valid tokens for HTTP API requests.

Obnam is my backup program, in development.

https://obnam.org/blog/2026/05/

#Obnam
#backupImplementation

Obnam server API, part 2

I started work on the Obnam server API. Mostly grunt work today: split the crate into two (client, server), and added scaffolding for server program (config files, PASETO token handing).

Obnam is my backup program.

https://obnam.org/blog/2026/04/

#Obnam
#backupImplementation

Obnam server API

I started work on the Obnam backup server by doing a little research into authentication and authorization for an HTTP API. I chose PASETO. I've used JMT before, and PASETO is largely similar, but avoids some common foot guns.

https://obnam.org/blog/2026/01/api/

#Obnam
#backupImplementation

Obnam 3: Server HTTP API authentication and authorization

I did some thinking and planning about Obnam backup storage in general and remote backup storage in particular.

If you think you might ever use Obnam, or care about any backup software, I would appreciate if you read that post and respond here with your feedback.

https://obnam.org/blog/2026/01/store/

#Obnam
#backupImplementation

Obnam 3: Storage design