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
Copy file name to clipboardExpand all lines: blog/2026-01-01-december/index.md
+13-13Lines changed: 13 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -68,15 +68,15 @@ Upgraded to Django 5.2.9 and added documentation for User Collections and Readin
68
68
69
69
Now that User Collections is up and running and Reading Lists have been improved, the plan is to refine these features based on user feedback and explore additional integration opportunities.
70
70
71
-
# Desaad: A Comic Book Library Management System
71
+
##Desaad: A Comic Book Library Management System
72
72
73
-
## What is Desaad?
73
+
###What is Desaad?
74
74
75
75
[Desaad](https://codeberg.org/bpepple/desaad) is a self-hosted, web-based comic book library manager and reader built with Django that I've been working on over the past week or so. I created it to test and plan features for Metron that might be useful for other comic servers.
76
76
77
-
## Key Features
77
+
###Key Features
78
78
79
-
### Library Management
79
+
####Library Management
80
80
81
81
Desaad imports CBZ, CBR, and PDF comic archives and automatically pulls metadata from MetronInfo.xml files - things like series information, publishers, creators, characters, teams, universes, and story arcs. I'm not planning to add ComicInfo.xml support, since there are a _lot_ of comic servers that already do.
82
82
@@ -94,11 +94,11 @@ It uses [Darkseid](https://github.com/Metron-Project/darkseid) for handling comi
94
94
style={{maxWidth: '100%', height: 'auto'}}
95
95
/>
96
96
97
-
### Built-in Web Reader
97
+
####Built-in Web Reader
98
98
99
99
The web reader uses [HTMX](https://htmx.org/) and automatically saves your reading position and progress, so you can pick up where you left off.
100
100
101
-
### Reading Lists
101
+
####Reading Lists
102
102
103
103
You can import reading lists from [Metron](https://metron.cloud) using the API. The feature automatically tracks which issues are in your library and shows you which ones you're missing.
104
104
@@ -108,25 +108,25 @@ You can import reading lists from [Metron](https://metron.cloud) using the API.
108
108
style={{maxWidth: '100%', height: 'auto'}}
109
109
/>
110
110
111
-
### OPDS 1.2 Catalog Support
111
+
#####OPDS 1.2 Catalog Support
112
112
113
113
You can access your comic library from mobile devices and e-readers using OPDS-compatible apps like Chunky Comic Reader (iOS), Panels (iOS), or Challenger Comics Viewer (Android).
114
114
115
115
I tried testing it with the Challenger app, but their OPDS support doesn't seem to work and is still marked as Beta. If anyone wants to test with Chunky or Panels, I'd appreciate hearing how it goes.
116
116
117
-
### Auto-Import Functionality
117
+
####Auto-Import Functionality
118
118
119
119
There's an import management command that you can run manually or set up to watch a directory for new comics.
120
120
121
121
I haven't optimized it much yet - the most expensive part is cover extraction, which I'll probably move to a background task at some point. I deployed it on a spare [GMKtec NucBox G3](https://www.gmktec.com/products/nucbox-g3-most-cost-effective-mini-pc-with-intel-n100-processor) I had, and it took about 3 hours to import around 65,000 comics. Once I move cover extraction to a background task, I should be able to get that down to 1-2 hours.
122
122
123
-
## Technical Foundation
123
+
###Technical Foundation
124
124
125
125
Desaad is built on Django 6.0 with SQLite for simplicity (though I'll probably switch to PostgreSQL at some point since SQLite has some performance limitations and missing features). The frontend uses the Bulma CSS framework with HTMX, and comic processing is handled by the [Darkseid](https://github.com/Metron-Project/darkseid) library. It's container-ready with Podman support and systemd integration.
126
126
127
127
It requires Python 3.13+ and uses the [uv](https://github.com/astral-sh/uv) package manager for dependency management.
128
128
129
-
## Important Considerations
129
+
###Important Considerations
130
130
131
131
A few things to keep in mind about Desaad:
132
132
@@ -136,11 +136,11 @@ A few things to keep in mind about Desaad:
136
136
137
137
3.**Under Active Development**: The project is still under construction and not ready for production use. Features and APIs will change.
138
138
139
-
## Who Should Use Desaad?
139
+
###Who Should Use Desaad?
140
140
141
141
Desaad might be a good fit if you're a developer or tester who prefers browser-based reading and wants to see possible new features like scrobbling. It works best if your collection uses metadata from a single source (Metron, Comic Vine, or Grand Comics Database). If your collection has mixed metadata from multiple sources, Desaad probably isn't the right tool for you.
142
142
143
-
## Getting Started
143
+
###Getting Started
144
144
145
145
Setting up Desaad is pretty straightforward:
146
146
@@ -165,7 +165,7 @@ uv run python manage.py runserver
165
165
166
166
For production deployments, there are Podman compose configurations with systemd service integration.
167
167
168
-
## Container Deployment
168
+
###Container Deployment
169
169
170
170
If you're using Fedora Linux, the included Podman configuration should make deployment simple. It should work on other systems running Podman too, but I haven't tested that yet. To get started:
0 commit comments