collecting at-risk data in torrent rss feeds https://sciop.net
  • Python 82.1%
  • HTML 10.5%
  • CSS 5.7%
  • JavaScript 1.4%
  • Jinja 0.2%
sneakers-the-rat 352538928b
All checks were successful
lint / lint (push) Successful in 14s
tests / tests-python3.11 (push) Successful in 1m49s
tests / tests-python3.12 (push) Successful in 1m54s
tests / tests-python3.13 (push) Successful in 1m56s
tests / tests-slow (push) Successful in 1m49s
tests / tests-playwright-python3.11 (push) Successful in 3m30s
tests / tests-playwright-python3.13 (push) Successful in 3m34s
tests / tests-playwright-python3.12 (push) Successful in 3m37s
Merge pull request 'fix api docs' (#483) from bugfix-api-docs into main
Reviewed-on: #483
2026-03-16 21:59:24 +01:00
.forgejo use lockfile in tests 2026-02-05 20:15:12 -08:00
docs document moderation, move enums to types 2025-10-23 18:21:23 -07:00
scripts fix datetime handling when last seen at is present, make utcdatetime type 2025-03-19 02:46:59 -07:00
src/sciop remove unused keep_defaults param, default type of defualt_factory is None 2026-03-16 13:53:39 -07:00
tests remove unused keep_defaults param, default type of defualt_factory is None 2026-03-16 13:53:39 -07:00
.env.sample config cli 2025-04-30 19:09:00 -07:00
.gitignore worlds crappiest frontend modal implementation, prior to any styling or ux 2025-09-13 00:51:18 -07:00
changelog.md refactor config into sub-models 2025-05-21 22:15:05 -07:00
LICENSE Initial commit 2025-02-02 01:27:17 +00:00
mkdocs.yml document moderation, move enums to types 2025-10-23 18:21:23 -07:00
pdm.lock update fastapi 2026-02-05 20:37:48 -08:00
pyproject.toml use lockfile in tests 2026-02-05 20:15:12 -08:00
README.md two column layout for homepage, frontend for blog feeds 2025-09-03 21:48:37 -07:00
sciop.sample.yaml complete sentence 2025-04-30 19:09:04 -07:00

SciOp

[ docs ] [ source ]

As a website and group of people: A distributed archive curated by distributed archivists preserving public information to plug the memoryhole.

As software: An experimental (soon to be) federated bittorrent tracker.

Running a SciOp Instance

Please see full instructions in the contributing docs

Installing

First, make sure that you have Python installed. Sciop requires Python version >= 3.11.

Then, clone the repository. If you plan to work on sciop, please consider creating a fork and cloning your fork:

git clone https://codeberg.org/Safeguarding/sciop cd sciop 

With pip

Make a Python virtual environment and activate it:

python -m venv ~/.envs/sciop . ~/.envs/sciop/bin/activate 

The example above created a venv in your home directory.

Install sciop in editable mode and it's dependencies into your virtual environment:

pip install -e . 

Install the optional dependencies for other workflows:

  • Documentation rendering: pip install -e '.[docs]'
  • Testing sciop package: pip install -e '.[test]'
  • Development server running: pip install -e '.[dev]'
  • All three workflows: pip install -e '.[docs, test, dev]'

Note: sciop is available on PyPI. However, while we are in beta development, we do not regularly deploy versions there. Installing from this repository is strongly recommended.

python -m pip install sciop 

With PDM

Install dependencies, automatically creating a virtual environment by default

pdm install 

Configuration

All of the following commands can be run either with a venv or pdm install, though only the venv version is shown. For PDM installs, just prepend pdm run like pdm run sciop start

Create a default configuration:

# to see all config commands, # sciop config --help sciop config copy 

Two fields must be set:

  • SCIOP_ENV/env: one of dev, test or prod. One should only make a sciop instance publicly available in prod mode. dev mode is for local development purposes, as is test. You must ensure that you do not re-use the same db between a dev/test and prod instance, e.g. if the SCIOP_DB location is explicitly set to something other than the defaults.
  • SCIOP_SECRET_KEY/secret_key: must be a securely-generated random hex value. A key can be generated with openssl rand -hex 32.

When generated from the cli, env is set to dev, and secret_key is automatically generated.

Run the dev sever

# see available CLI commands # sciop --help sciop start 

License

EUPL v1.2

Vendored Software

This project includes the following vendored software:

And includes modified but still substantial quotes from the following software: