41554 blogs · [ { "id": "01a0bdc8-3a05-70ea-a47c-a842a9f78d9d", "title": "Restore data, for real (or surreal)", "url": "https://obnam.org/blog/2026/31/", "published_at": "2026-09-20T05:06:56+00:00" }, { "id": "01a0bdc8-3a05-70ea-a47c-a842aa2993a6", "title": "Restoring data, almost", "url": "https://obnam.org/blog/2026/30/", "published_at": "2026-09-13T06:07:09+00:00" }, { "id": "01a087b4-b7e8-713c-9b0e-8264943c04ca", "title": "Obnam: refactor, part 2", "url": "https://obnam.org/blog/2026/29/", "published_at": "2026-09-06T03:57:54+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023efd4388b", "title": "Obnam: refactor", "url": "https://obnam.org/blog/2026/28/", "published_at": "2026-08-30T02:59:53+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023f0a7f4b2", "title": "Obnam: backup chunks", "url": "https://obnam.org/blog/2026/27/", "published_at": "2026-08-23T05:00:26+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023f0f756a1", "title": "Obnam: upload chunks", "url": "https://obnam.org/blog/2026/26/", "published_at": "2026-08-16T04:03:14+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023f12f8293", "title": "Obnam: excessively simplistic backup", "url": "https://obnam.org/blog/2026/25/", "published_at": "2026-08-09T05:10:01+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023f22cffb7", "title": "Obnam: unifying access to local and remote repositories, part 2", "url": "https://obnam.org/blog/2026/24/", "published_at": "2026-08-01T06:17:21+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023f27ab4f2", "title": "Obnam: unifying access to local and remote repositories", "url": "https://obnam.org/blog/2026/23/", "published_at": "2026-07-26T07:30:52+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023f2af6f36", "title": "Obnam: further tidying up", "url": "https://obnam.org/blog/2026/22/", "published_at": "2026-07-12T05:59:16+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023f3808512", "title": "Obnam: tidying up", "url": "https://obnam.org/blog/2026/21/", "published_at": "2026-07-05T04:40:45+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023f446c44d", "title": "Obnam: client repository access interface: part 2", "url": "https://obnam.org/blog/2026/20/", "published_at": "2026-06-28T04:13:56+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023f4963d50", "title": "Obnam: client repository access interface", "url": "https://obnam.org/blog/2026/19/", "published_at": "2026-06-20T03:45:33+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023f4a9344f", "title": "Obnam: client for server", "url": "https://obnam.org/blog/2026/18/", "published_at": "2026-06-06T09:31:59+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023f56c2765", "title": "Obnam: server persistence, part 3", "url": "https://obnam.org/blog/2026/17/", "published_at": "2026-05-24T03:49:22+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023f5c3c1a7", "title": "Obnam: server persistence, part 2", "url": "https://obnam.org/blog/2026/16/", "published_at": "2026-05-17T03:08:24+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023f5f27cb3", "title": "Obnam: terminology, server persistence", "url": "https://obnam.org/blog/2026/15/", "published_at": "2026-04-19T05:32:21+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023f6e9b21b", "title": "Obnam: representing chunk IDs, part 2", "url": "https://obnam.org/blog/2026/14/", "published_at": "2026-04-12T05:29:38+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023f79a4bf4", "title": "Obnam: representing chunk IDs", "url": "https://obnam.org/blog/2026/13/", "published_at": "2026-04-05T05:10:44+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023f887a385", "title": "Obnam: client for server, part 2", "url": "https://obnam.org/blog/2026/12-client/", "published_at": "2026-03-29T05:45:31+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023f95ef9f5", "title": "Obnam: client for server", "url": "https://obnam.org/blog/2026/11-client/", "published_at": "2026-03-22T07:03:18+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023f962463d", "title": "Obnam: refactor subplots", "url": "https://obnam.org/blog/2026/10-subplot-refactor/", "published_at": "2026-03-15T05:00:34+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023f9e032a8", "title": "Obnam server API: GET and PUT chunks", "url": "https://obnam.org/blog/2026/09-api-get-put-chunks/", "published_at": "2026-03-08T11:10:28+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023fa500095", "title": "Obnam server API: managing a daemon in test suite", "url": "https://obnam.org/blog/2026/08-daemons/", "published_at": "2026-03-01T11:53:21+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023faf0cb55", "title": "Obnam server API: verification scenarios for /validate", "url": "https://obnam.org/blog/2026/07/", "published_at": "2026-02-22T09:29:23+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023fb48c5d4", "title": "Obnam server API: token validation in requests", "url": "https://obnam.org/blog/2026/06/", "published_at": "2026-02-15T08:59:27+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023fbfcff3d", "title": "Obnam server API, part 2", "url": "https://obnam.org/blog/2026/05/", "published_at": "2026-02-08T08:39:31+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023fcfb7b60", "title": "Obnam server API", "url": "https://obnam.org/blog/2026/04/", "published_at": "2026-02-01T09:12:28+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023fde401ad", "title": "Obnam 3: Server HTTP API authentication and authorization", "url": "https://obnam.org/blog/2026/01/api/", "published_at": "2026-01-25T10:05:36+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023fe0f79c0", "title": "Obnam 3: Storage design", "url": "https://obnam.org/blog/2026/01/store/", "published_at": "2026-01-18T09:06:04+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023feb168a8", "title": "Obnam and online storage: possibilities", "url": "https://obnam.org/blog/2026/s3/", "published_at": "2026-01-02T06:25:15+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023fec2dd85", "title": "Obnam 3: Chores", "url": "https://obnam.org/blog/2025/obnam3-31/", "published_at": "2025-11-16T09:23:56+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4023ff879065", "title": "Obnam 3: Logging", "url": "https://obnam.org/blog/2025/obnam3-30/", "published_at": "2025-10-05T08:59:38+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-402400291138", "title": "Obnam 3: documentation; open up project", "url": "https://obnam.org/blog/2025/obnam3-29/", "published_at": "2025-09-28T08:01:52+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4024003f538e", "title": "Obnam 3: create initial credential with client", "url": "https://obnam.org/blog/2025/obnam3-28/", "published_at": "2025-09-21T06:58:30+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-402400ad2e22", "title": "Obnam 3: OpenPGP card credentials", "url": "https://obnam.org/blog/2025/obnam3-27/", "published_at": "2025-09-14T04:37:51+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-40240132e4d2", "title": "Obnam 3: client init and credential chunk", "url": "https://obnam.org/blog/2025/obnam3-26/", "published_at": "2025-09-07T12:53:05+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-40240137c527", "title": "Obnam 3: use credentials to get client key", "url": "https://obnam.org/blog/2025/obnam3-25/", "published_at": "2025-08-31T07:32:45+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-402401993469", "title": "Obnam 3: decrypt credentials using configured secrets", "url": "https://obnam.org/blog/2025/obnam3-24/", "published_at": "2025-08-17T06:52:54+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4024026b5e7c", "title": "Obnam 3: command to create OpenPGP software key credential", "url": "https://obnam.org/blog/2025/obnam3-23/", "published_at": "2025-08-10T06:10:57+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4024031648af", "title": "Obnam 3: all kinds of chunks in store", "url": "https://obnam.org/blog/2025/obnam3-22/", "published_at": "2025-08-03T07:18:08+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-402403235f03", "title": "Obnam 3: lifetime trouble", "url": "https://obnam.org/blog/2025/obnam3-21/", "published_at": "2025-07-27T07:02:02+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-402403b5591b", "title": "Obnam 3: start on credential subcommands", "url": "https://obnam.org/blog/2025/obnam3-20/", "published_at": "2025-07-20T07:35:17+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4024042bb824", "title": "Obnam 3: configuration file", "url": "https://obnam.org/blog/2025/obnam3-19/", "published_at": "2025-07-13T11:08:43+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-402404c2edf4", "title": "Obnam 3: OpenPGP software key credential", "url": "https://obnam.org/blog/2025/obnam3-18/", "published_at": "2025-07-12T14:13:06+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-40240587f784", "title": "Obnam 3: credentials, running a SOP implementation", "url": "https://obnam.org/blog/2025/obnam3-17/", "published_at": "2025-07-06T09:02:11+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-402405f08135", "title": "Obnam 3: credentials planning and prototyping", "url": "https://obnam.org/blog/2025/obnam3-16/", "published_at": "2025-06-29T08:45:47+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-402406941c11", "title": "Obnam 3: client key storage and management, part 2", "url": "https://obnam.org/blog/2025/obnam3-15/", "published_at": "2025-06-21T08:54:47+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-402406dae07d", "title": "Obnam 3: client key storage and management", "url": "https://obnam.org/blog/2025/obnam3-14/", "published_at": "2025-06-15T07:29:58+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4024078c8c86", "title": "Obnam 3: chunk compression", "url": "https://obnam.org/blog/2025/obnam3-13/", "published_at": "2025-06-08T04:41:14+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4024079619a2", "title": "Obnam 3: chunk repository, CLI convenience", "url": "https://obnam.org/blog/2025/obnam3-12/", "published_at": "2025-06-07T08:52:01+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-402407dd03c9", "title": "Obnam 3: chunk repository, second iteration", "url": "https://obnam.org/blog/2025/obnam3-11/", "published_at": "2025-05-25T07:18:34+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4024084e461f", "title": "Obnam 3: chunk repository, first iteration", "url": "https://obnam.org/blog/2025/obnam3-10/", "published_at": "2025-05-18T07:04:43+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-402408b4ec5b", "title": "Obnam 3: encryption merged", "url": "https://obnam.org/blog/2025/obnam3-09/", "published_at": "2025-05-11T10:47:01+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4024091e0ba5", "title": "Obnam 3: encryption entanglement epiphany", "url": "https://obnam.org/blog/2025/obnam3-08/", "published_at": "2025-05-04T15:45:05+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-402409fd6aaf", "title": "Obnam 3: progress on encryption", "url": "https://obnam.org/blog/2025/obnam3-07/", "published_at": "2025-04-27T07:16:34+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-40240a18703b", "title": "Obnam 3: encryption, second attempt", "url": "https://obnam.org/blog/2025/obnam3-06/", "published_at": "2025-04-20T05:20:04+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-40240a76d48b", "title": "Obnam 3: chunk encryption", "url": "https://obnam.org/blog/2025/obnam3-05/", "published_at": "2025-04-13T17:13:32+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-40240af960ed", "title": "Obnam 3: place holder for encryption", "url": "https://obnam.org/blog/2025/obnam3-04/", "published_at": "2025-04-06T07:32:58+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-40240afd9ed4", "title": "Obnam 3: chores", "url": "https://obnam.org/blog/2025/obnam3-03/", "published_at": "2025-03-30T07:07:37+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-40240b0cd2c8", "title": "Obnam 3: more chunk encoding", "url": "https://obnam.org/blog/2025/obnam3-02/", "published_at": "2025-03-23T08:16:43+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-40240c07197d", "title": "Obnam 3: setup", "url": "https://obnam.org/blog/2025/obnam3-01/", "published_at": "2025-03-16T08:10:43+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-40240c577d22", "title": "Iteration planning: April 25—May 9", "url": "https://obnam.org/blog/2021/04/25/meeting/", "published_at": "2023-06-07T06:19:31+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-40240d35eef6", "title": "Iteration planning: January", "url": "https://obnam.org/blog/2023/01/meeting/", "published_at": "2023-01-07T07:29:03+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-40240e35a5ef", "title": "Iteration planning: November", "url": "https://obnam.org/blog/2022/11/planning/", "published_at": "2022-11-05T06:30:24+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-40240e6435c7", "title": "Iteration planning: May 10—May 30", "url": "https://obnam.org/blog/2021/05/10/meeting/", "published_at": "2022-10-04T07:39:09+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-40240ec92f89", "title": "Iteration planning: October", "url": "https://obnam.org/blog/2022/10/planning/", "published_at": "2022-10-03T13:23:42+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-40240fb929df", "title": "Obnam 0.8.0 - encrypting backup program", "url": "https://obnam.org/blog/2022/07/24/obnam-0.8.0/", "published_at": "2022-07-24T09:32:51+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4024100d1fb5", "title": "Iteration planning: June 12 – 26", "url": "https://obnam.org/blog/2022/06/12/", "published_at": "2022-04-17T06:43:42+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-402410e83b4a", "title": "Iteration planning: April 17 – May 1", "url": "https://obnam.org/blog/2022/04/17/plannning/", "published_at": "2022-04-17T06:43:42+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-402411c117ab", "title": "Iteration planning: April 4 – 17", "url": "https://obnam.org/blog/2022/04/03/planning/", "published_at": "2022-04-03T16:45:24+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-40241230399a", "title": "Iteration planning: March 21 – April 3", "url": "https://obnam.org/blog/2022/03/21/planning/", "published_at": "2022-03-21T08:00:00+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4024126d69b3", "title": "Obnam 0.7.1 released: encrypting backup program", "url": "https://obnam.org/blog/2022/03/08/obnam-0.7.1/", "published_at": "2022-03-08T07:15:01+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4024134551ce", "title": "Iteration planning: February 26 – March 12", "url": "https://obnam.org/blog/2022/02/23/planning/", "published_at": "2022-02-23T16:52:11+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-402413dde2c2", "title": "Iteration planning: March 6–20", "url": "https://obnam.org/blog/2022/03/06/planning/", "published_at": "2022-02-23T16:52:11+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4024145a89ad", "title": "Iteration planning: Januuary 9–23", "url": "https://obnam.org/blog/2022/01/07/planning/", "published_at": "2022-01-07T07:16:56+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4024153c71d7", "title": "Obnam 0.7.0 released: encrypting backup program", "url": "https://obnam.org/blog/2022/01/04/obnam-0.7.0/", "published_at": "2022-01-04T15:40:59+00:00" }, { "id": "01a087b4-b7e9-7370-8ae3-4024156bc4fa", "title": "Iteration planning: December 6–20", "url": "https://obnam.org/blog/2021/12/06/planning/", "published_at": "2021-12-06T08:19:29+00:00" }, { "id": "01a087b4-b7ea-7043-b8ae-31e7ff63df26", "title": "Obnam 0.6.0 released: encrypting backup program", "url": "https://obnam.org/blog/2021/12/04/obnam-0.6.0/", "published_at": "2021-12-04T07:49:46+00:00" }, { "id": "01a087b4-b7ea-7043-b8ae-31e7ffb5735f", "title": "Iteration planning: November 21—December 5", "url": "https://obnam.org/blog/2021/11/21/planning/", "published_at": "2021-11-21T08:05:03+00:00" }, { "id": "01a087b4-b7ea-7043-b8ae-31e8009a2ecf", "title": "Obnam 0.5.0 released", "url": "https://obnam.org/blog/2021/11/21/0.5.0/", "published_at": "2021-11-21T07:51:01+00:00" }, { "id": "01a087b4-b7ea-7043-b8ae-31e801028776", "title": "Iteration planning: November 7—21", "url": "https://obnam.org/blog/2021/11/07/planning/", "published_at": "2021-11-07T13:00:24+00:00" }, { "id": "01a087b4-b7ea-7043-b8ae-31e801ba7a67", "title": "Iteration planning: September 12—September 26", "url": "https://obnam.org/blog/2021/09/12/planning/", "published_at": "2021-09-14T06:12:40+00:00" }, { "id": "01a087b4-b7ea-7043-b8ae-31e8027b9f4d", "title": "Iteration planning: August 29–September 12", "url": "https://obnam.org/blog/2021/08/29/planning/", "published_at": "2021-08-29T13:20:36+00:00" }, { "id": "01a087b4-b7ea-7043-b8ae-31e803709c90", "title": "Iteration planning: August 16–August 29", "url": "https://obnam.org/blog/2021/08/16/planning/", "published_at": "2021-08-16T06:52:13+00:00" }, { "id": "01a087b4-b7ea-7043-b8ae-31e80402a639", "title": "Iteration planning: August 2–August 15", "url": "https://obnam.org/blog/2021/08/01/planning/", "published_at": "2021-07-31T06:50:34+00:00" }, { "id": "01a087b4-b7ea-7043-b8ae-31e804cfe670", "title": "Iteration planning: July 18–August 2", "url": "https://obnam.org/blog/2021/07/18/meeting/", "published_at": "2021-07-22T11:05:50+00:00" }, { "id": "01a087b4-b7ea-7043-b8ae-31e804ef7356", "title": "Iteration planning: July 4–18", "url": "https://obnam.org/blog/2021/07/04/meetings/", "published_at": "2021-06-26T07:31:50+00:00" }, { "id": "01a087b4-b7ea-7043-b8ae-31e8051093ed", "title": "Iteration planning: June 6–19", "url": "https://obnam.org/blog/2021/06/06/meeting/", "published_at": "2021-06-05T18:07:01+00:00" }, { "id": "01a087b4-b7ea-7043-b8ae-31e805b7b85d", "title": "Iteration planning: April 18—April 25", "url": "https://obnam.org/blog/2021/04/18/meeting/", "published_at": "2021-04-18T16:30:52+00:00" }, { "id": "01a087b4-b7ea-7043-b8ae-31e806ad6c1f", "title": "Iteration planning: March 28—April 11", "url": "https://obnam.org/blog/2021/03/28/planning/", "published_at": "2021-03-28T17:57:20+00:00" }, { "id": "01a087b4-b7ea-7043-b8ae-31e8078a890f", "title": "Iteration planning: February 28", "url": "https://obnam.org/blog/2021/02/28/planning/", "published_at": "2021-02-28T17:18:42+00:00" }, { "id": "01a087b4-b7ea-7043-b8ae-31e807ca7eae", "title": "Iteration planning: February 15", "url": "https://obnam.org/blog/2021/02/15/iteration/", "published_at": "2021-02-15T05:42:15+00:00" }, { "id": "01a087b4-b7ea-7043-b8ae-31e808340323", "title": "Iteration planning: January 31st", "url": "https://obnam.org/blog/2021/01/31/iteration/", "published_at": "2021-01-31T09:49:59+00:00" }, { "id": "01a087b4-b7ea-7043-b8ae-31e808c39ce0", "title": "Obnam2 version 0.2.2, backup program: an alpha version", "url": "https://obnam.org/blog/2021/01/29/v0.2.2/", "published_at": "2021-01-29T09:48:00+00:00" }, { "id": "01a087b4-b7ea-7043-b8ae-31e80952f573", "title": "Iteration planning: January 16th", "url": "https://obnam.org/blog/2021/01/16/iteration/", "published_at": "2021-01-16T07:29:51+00:00" }, { "id": "01a087b4-b7ea-7043-b8ae-31e809fa435f", "title": "Iteration planning: January 2nd", "url": "https://obnam.org/blog/2021/01/02/iteration/", "published_at": "2021-01-02T16:29:51+00:00" } ] posts Claim your blog
Back to obnam.org
Blog · corpus.blog/blogs/obnam.org/posts

obnam.org

obnam.org

2026

2025

2023

2022

2021