Because everything on the Web eventually loops back onto itself.
- 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
- 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
)
- Discord webhook URL (
- Install Python 3.10+, Poetry 1.2.0+, and VS Code
- Create required secret keys (default:
/app/secrets
or environment) - Run
poetry install
- Launch the API using the provided VS Code launch configuration
- Auto-generated API docs are available at
/docs
- Run tests with
poetry run pytest
or through VS Code
docker build -t webring:latest .
docker-compose up -d
2021-2022 Caleb