Skip to content
/ webring Public

Because everything on the Web eventually loops back onto itself.

License

Notifications You must be signed in to change notification settings

le717/webring

Repository files navigation

Webring

Because everything on the Web eventually loops back onto itself.

Features

  • View all entries in the ring
  • Create, update, and delete entries
  • Linkrot checking, with Web Archive fallback url for dead links (when possible)
  • Optional linkrot event logging to Discord channel
    • Text error log fallback if disabled

Required Secrets

  • Flask secret key (SECRET_KEY)
  • Absolute path to SQLite file (DB_PATH)
  • JSON list of auth keys for all non-GET operations (AUTH_KEYS)
  • Integer number of times supposed rotted links should be checked (TIMES_FAILED_THRESHOLD, default: 10)
  • Discord linkrot event logging boolean (ENABLE_DISCORD_LOGGING, default: False)
    • Discord webhook URL (DISCORD_WEBHOOK_URL)

Development

  1. Install Python 3.10+, Poetry 1.2.0+, and VS Code
  2. Create required secret keys (default: /app/secrets or environment)
  3. Run poetry install
  4. Launch the API using the provided VS Code launch configuration
  5. Auto-generated API docs are available at /docs
  6. Run tests with poetry run pytest or through VS Code

Build

  1. docker build -t webring:latest .
  2. docker-compose up -d

License

2021-2022 Caleb

MIT