- Python 82.1%
- HTML 10.5%
- CSS 5.7%
- JavaScript 1.4%
- Jinja 0.2%
| 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 Reviewed-on: #483 | ||
|---|---|---|
| .forgejo | ||
| docs | ||
| scripts | ||
| src/sciop | ||
| tests | ||
| .env.sample | ||
| .gitignore | ||
| changelog.md | ||
| LICENSE | ||
| mkdocs.yml | ||
| pdm.lock | ||
| pyproject.toml | ||
| README.md | ||
| sciop.sample.yaml | ||
SciOp
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 ofdev,testorprod. One should only make a sciop instance publicly available inprodmode.devmode is for local development purposes, as istest. You must ensure that you do not re-use the same db between adev/testandprodinstance, e.g. if theSCIOP_DBlocation 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 withopenssl 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
Vendored Software
This project includes the following vendored software:
- htmx - Zero-Clause BSD
- form-json - GPL 3.0
- fastapi_rss - MIT
And includes modified but still substantial quotes from the following software:
- 98.css - MIT