Web UI

Archiveinator includes a browser-based web interface for managing archives, site profiles, RSS feeds, scheduled archiving, and bulk imports. It’s served by FastAPI with SQLite storage and APScheduler for background tasks.


Architecture

Browser (server-rendered HTML + vanilla JS)
  ├── REST API (FastAPI)
  ├── WebSocket (pipeline progress streaming)
  └── Static file download

FastAPI Server
  ├── Session-based auth (bcrypt-passwords)
  ├── Job Manager (in-process async tasks)
  ├── APScheduler (RSS checks, cron-archiving)
  ├── SQLite via SQLAlchemy
  └── archiveinator pipeline (imported directly)

Starting the Server

# Install with web dependencies
pip3 install "archiveinator[web] @ git+https://github.com/p0rkchop/archiveinator.git"

# Start the server
archiveinator serve

# Custom host and port
archiveinator serve --host 0.0.0.0 --port 8080

# Development mode (auto-reload, verbose logging)
archiveinator serve --dev

Open http://localhost:8080 and register a new account.


Registration and Login

The first user to register is automatically an admin. All subsequent users are standard users.

  • Username/password authentication with bcrypt password hashing
  • Session stored in a signed cookie (survives server restarts)
  • Passwords must be at least 8 characters
  • Optional email address for notifications

Page Description
Dashboard Main page — archive form, progress bar, recent jobs, quick stats
Site Profiles Per-domain cookie profiles for authenticated archiving
RSS Feeds Subscribe to RSS/Atom feeds and auto-archive new articles
Schedules Recurring archives on cron schedules
Settings Pipeline toggles, user agents, timeouts, email notifications

The sidebar also links to History (past job results with filtering) and Bulk Import (multi-format bookmark/URL imports).


Environment Variables

Variable Default Description
RESEND_API_KEY (none) Resend API key for email notifications. If unset, email sending is silently skipped.
RESEND_FROM archiveinator <onboarding@resend.dev> From address for notification emails

Docker

The Docker image includes the web UI and starts the server by default:

docker run --rm -p 8080:8080 -v archive-data:/data ghcr.io/p0rkchop/archiveinator:latest

See the Docker Guide for full details.


Table of contents


Back to top

archiveinator © 2026. Distributed under the MIT License.

This site uses Just the Docs, a documentation theme for Jekyll.