بنقرة واحدة
wayback
Query and explore the Wayback Archiver personal web archiving system
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Query and explore the Wayback Archiver personal web archiving system
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | wayback |
| description | Query and explore the Wayback Archiver personal web archiving system |
Wayback Archiver is a self-hosted personal web archiving system that captures and preserves web pages with full fidelity — HTML, CSS, JavaScript, images, fonts, and all resources.
Repository: https://github.com/icodeface/wayback-archiver
Use this skill when the user wants to:
Before using this skill, ensure the Wayback Archiver server is running:
Download from Releases:
wayback-server-<os>-<arch>.tar.gz (or .zip for Windows)wayback-userscript.jsExtract the server binary:
# macOS/Linux
tar -xzf wayback-server-*.tar.gz
# Windows: extract the .zip file
Building from source? See docs/BUILD.md.
By default, Wayback Archiver uses SQLite (zero-config, single-file database). For remote deployment with multiple users, PostgreSQL is recommended.
Option 1: SQLite (Default)
No setup required! The database file will be created automatically at ./data/wayback.db on first run.
Option 2: PostgreSQL
# Configure database connection in .env
echo "DB_TYPE=postgres" >> .env
echo "DB_NAME=wayback" >> .env
Server startup automatically creates the configured PostgreSQL database and tables. If the database does not exist yet, the configured user must have permission to create databases.
Upgrade note for existing installs: Any installation upgrading from
< 1.1.0to1.1.0or later needs thepages.snapshot_statecolumn. The server applies this automatically during startup when the database user has sufficient privileges. Otherwise, run the following idempotent SQL manually first:ALTER TABLE pages ADD COLUMN IF NOT EXISTS snapshot_state VARCHAR(16); UPDATE pages SET snapshot_state = 'ready' WHERE snapshot_state IS NULL OR snapshot_state = ''; ALTER TABLE pages ALTER COLUMN snapshot_state SET DEFAULT 'pending'; ALTER TABLE pages ALTER COLUMN snapshot_state SET NOT NULL;
./wayback-server
Server runs at http://localhost:8080 by default.
wayback-userscript.js from ReleasesChrome users: Enable "Allow user scripts" in Tampermonkey's extension settings (right-click icon → Manage extension). Firefox does not require this.
Base URL: http://localhost:8080
When AUTH_PASSWORD is set, use HTTP Basic Auth:
wayback$AUTH_PASSWORDcurl "http://localhost:8080/api/pages?limit=100&offset=0"
curl "http://localhost:8080/api/search?q=$KEYWORD"
curl "http://localhost:8080/api/pages?from=2026-03-01&to=2026-03-12"
curl "http://localhost:8080/api/pages/$PAGE_ID"
Returns the page body as clean Markdown (strips scripts, nav, footer, etc.). Ideal for AI/LLM consumption.
curl "http://localhost:8080/view/$PAGE_ID/md"
Creates an unauthenticated link for one fixed snapshot. The returned token is only shown once.
The /view/:id snapshot header also has a Share button that creates and copies the public URL, then exposes Revoke for that share.
curl -X POST "http://localhost:8080/api/pages/$PAGE_ID/shares" \
-H "Content-Type: application/json" \
-d '{}'
curl "http://localhost:8080/api/pages/timeline?url=$ENCODED_URL"
Open in browser:
http://localhost:8080/view/$PAGE_ID
{
id: number;
url: string;
title: string;
captured_at: string; // ISO 8601 timestamp
html_path: string;
content_hash: string; // SHA-256
first_visited: string; // ISO 8601 timestamp
last_visited: string; // ISO 8601 timestamp
created_at: string; // ISO 8601 timestamp
}
{
id: number;
url: string;
content_hash: string; // SHA-256
resource_type: string; // "css", "js", "image", "font", etc.
file_path: string;
file_size: number;
first_seen: string; // ISO 8601 timestamp
last_seen: string; // ISO 8601 timestamp
}
data/
├── html/ # HTML snapshots, organized by date
│ └── 2026/03/12/
│ └── <timestamp>_<hash>.html
└── resources/ # Deduplicated static resources
└── ab/cd/
└── <sha256>.css
MessageChannel/api/archive and /api/archive/:id reject decompressed JSON bodies above 32 MiB.local pagesSee docs/BUILD.md for build and test instructions.
| Issue | Solution |
|---|---|
| Server won't start | Check database configuration; for PostgreSQL ensure it's running and database exists |
| Pages not archiving | Verify Tampermonkey script is enabled and server is reachable |
| Missing resources | Check proxy settings if behind corporate firewall |
| Authentication errors | Verify AUTH_PASSWORD env var matches your curl credentials |
Create .env file in the project root (or set environment variables directly):
The server automatically loads .env from the working directory if it exists.
# Database
DB_TYPE=sqlite # "sqlite" (default) or "postgres"
DB_PATH=./data/wayback.db # SQLite database file path (when DB_TYPE=sqlite)
# PostgreSQL configuration (when DB_TYPE=postgres)
DB_HOST=localhost
DB_PORT=5432
# DB_USER defaults to your current system username; falls back to postgres if unavailable
# DB_USER=
DB_PASSWORD=
DB_NAME=wayback
DB_SSLMODE=disable
# Server
SERVER_HOST=0.0.0.0 # 默认 127.0.0.1,设置 0.0.0.0 监听所有网卡
SERVER_PORT=8080
# Storage
DATA_DIR=./data
# Resource metadata cache
RESOURCE_METADATA_CACHE_MB=256 # Optional; RESOURCE_CACHE_MB is a legacy alias
# Authentication (optional)
AUTH_PASSWORD=
# Debug APIs (disabled by default; enable only while troubleshooting)
ENABLE_DEBUG_API=false
MIT