Skip to main content

Open source link aggregator

Project description

Throat

https://phuks.co/

A phoxy link and discussion aggregator with snek (python3)

Dependencies:

  • A database server, MySQL, MariaDB and Postres have been tested. Sqlite should work for messing locally
  • Redis
  • Python >= 3.7
  • A recent node/npm
  • libmagic and gobject

Setup:

We recommend using a virtualenv or Pyenv

  1. Install Python dependencies with pip install -r requirements.txt
  2. Install Node dependencies with npm install
  3. Build the bundles with npm run build
  4. Copy example.config.yml to config.yml and edit it
  5. Set up the database by executing ./scripts/migrate.py

And you're done! You can run a test server by executing ./throat.py. For production instances we recommend setting up gunicorn

Develop on Docker

If you prefer to develop on docker

  • The provided Docker resources only support Postgres
  • You still must copy example.config.yaml to config.yaml and make any changes you want
  • In addition, configs are overridden by environment variables set in docker-compose.yml which reference the redis and postgres services created by docker-compose.

make up will bring the containerized site up and mount your current working directory inside the container for dev. It also runs the migrations on start-up. make down will spin down the containerized services.

To add an admin user to a running docker-compose application: docker exec throat_throat_1 python3 scripts/admins.py --add {{username}}

If Wheezy templates are not automatically reloading in docker between changes, try docker restart throat_throat_1.

Docker Deployments

Gunicorn

CMD [ "gunicorn", \
      "-w", "4", \
      "-k", "geventwebsocket.gunicorn.workers.GeventWebSocketWorker", \
      "-b", "0.0.0.0:5000", \
      "throat:app" ]

Authenticating with a Keycloak server

Optionally, user authentication can be done using a Keycloak server. You will need to create a realm for the users on the server, as well as Keycloak clients with appropriate permissions. See doc/keycloak.org for instructions.

Tests

Python tests

  1. Python, redis, libmagic and gobject are required, but node and postgres are not.
  2. Install dependencies with pip install -r requirements.txt
  3. Install the test dependencies with pip install -r requirements-test.txt
  4. Run the tests with python -m pytest
  5. The tests are not affected by your configuration in config.yaml. If you wish to run the tests against production database or authentication servers (instead of the defaults, which are sqlite and local authentication), you may put configuration settings in test_config.yaml and run the tests with TEST_CONFIG=test_config.yaml python -m pytest

Chat

If you have any questions, you can reach us on #throat:phuks.co on Matrix


You can manage default subs by using

  • $ ./scripts/defaults.py

To add/remove administrators use

  • $ ./scripts/admins.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

throat-0.0.0.tar.gz (86.2 kB view details)

Uploaded Source

Built Distribution

throat-0.0.0-py3-none-any.whl (97.4 kB view details)

Uploaded Python 3

File details

Details for the file throat-0.0.0.tar.gz.

File metadata

  • Download URL: throat-0.0.0.tar.gz
  • Upload date:
  • Size: 86.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.2

File hashes

Hashes for throat-0.0.0.tar.gz
Algorithm Hash digest
SHA256 35f52a78294c931d27745975665f740ef1de737d4b20be03e2b9ddc33dedc8c3
MD5 18392e0ea7be61a60298b62f0e2ac3ee
BLAKE2b-256 10b403f71d3c0a25e80bcb03d139150ccda4d3e85fe412659411446398566449

See more details on using hashes here.

File details

Details for the file throat-0.0.0-py3-none-any.whl.

File metadata

  • Download URL: throat-0.0.0-py3-none-any.whl
  • Upload date:
  • Size: 97.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.2

File hashes

Hashes for throat-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cd6ff14a821d92ba30c3b006afe7794e1c682147e46c95091b3b88fecb0f1f2b
MD5 a09f0afb9afaa67587df11dac083173d
BLAKE2b-256 fb4e2ce0478a0a1ae16ea45ea270a299cb3681d02419889fbb6a207c3f436ad6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page