Skip to main content

A simple frontend for Instructables

Project description

Structables

An open source alternative front-end to Instructables. This is a fork of snowcatridge10's Indestructables, which itself is a fork of Cobra's Destructables.

Support Private.coffee! Matrix PyPI PyPI - Python Version PyPI - License Latest Git Commit

Instances

URL Provided by Country Comments
structables.private.coffee Private.coffee Austria
structables.bloat.cat Bloat.cat Germany
structables.darkness.services Darkness.services USA

Tor Hidden Services

URL Provided by Country Comments
structables.coffee2m3bjsrrqqycx6ghkxrnejl2q6nl7pjw2j4clchjj6uk5zozad.onion Private.coffee Austria
structables.darknessrdor43qkl2ngwitj72zdavfz2cead4t5ed72bybgauww5lyd.onion Darkness.services USA

Adding Your Instance

To add your own instance to this list, please open a pull request or issue, see below.

Opening Issues

If you're having problems using Structables, or if you have ideas or feedback for us, feel free to open an issue in the Private.coffee Git or on Github.

Of course, you can also join our Matrix room to discuss your ideas with us.

Run your own instance

Production: Manual

  1. Create a virtual environment: python3 -m venv venv
  2. Activate the virtual environment: source venv/bin/activate
  3. Install the packages: pip install structables uwsgi
  4. Run uwsgi --plugin python3 --http-socket 0.0.0.0:8002 --module structables.main:app --processes 4 --threads 4
  5. Point your reverse proxy to http://localhost:8002 and (optionally) serve static files from the venv/lib/pythonX.XX/site-packages/structables/static directory
  6. Connect to your instance under your domain
  7. Ensure that /cron/ is executed at regular intervals so that the app updates its cached data.

Production: Docker

  1. Copy .env.example to .env and adjust the settings as necessary

  2. Copy docker-compose-example.yml to docker-compose.yml and adjust it as necessary, for example modifying resource limits or changing the port/host configuration

  3. Build and run the Docker container:

    docker-compose up [-d]
    
  4. Point your reverse proxy to http://127.0.0.1:8002 (or your chosen port, if you modified it) and (optionally) serve static files from structables/static

  5. Connect to your instance under your domain

  6. Ensure that /cron/ is executed at regular intervals so that the app updates its cached data.

Development

  1. Clone the repository: git clone https://git.private.coffee/privatecoffee/structables.git && cd structables
  2. Create a virtual environment: python3 -m venv venv
  3. Activate the virtual environment: source venv/bin/activate
  4. Install in editable mode: pip install -e .
  5. Run structables
  6. Connect to http://localhost:8002

Environment Variables

Structables supports the use of the following environment variables for configuration:

  • STRUCTABLES_PORT: The port to listen on (default: 8002)
  • STRUCTABLES_LISTEN_HOST: The host/IP address to listen on (default: 127.0.0.1)
  • STRUCTABLES_INVIDIOUS: The hostname of an Invidious instance to use for embedded YouTube videos (currently not recommended due to YouTube blocks)
  • STRUCTABLES_UNSAFE: If set, allow embedding untrusted iframes (if unset, display a warning and allow loading the content manually)
  • STRUCTABLES_PRIVACY_FILE: The path to a text file or Markdown file (with .md suffix) to use for the Privacy Policy page (if unset, try privacy.txt or privacy.md in the working directory, or fall back to a generic message)
  • STRUCTABLES_DEBUG: If set, log additional debug information to stdout

License

This project, as well as the two projects it is based on, are licensed under the GNU Affero General Public License v3. See the LICENSE file for more information.

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

structables-0.3.16.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

structables-0.3.16-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file structables-0.3.16.tar.gz.

File metadata

  • Download URL: structables-0.3.16.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.2

File hashes

Hashes for structables-0.3.16.tar.gz
Algorithm Hash digest
SHA256 8bee1ce0c2b62050abac61a7b5a12b0f071394324401996bcd8f21cb1e81ade5
MD5 730fffc42cc385a95b59c02d861412ff
BLAKE2b-256 77dc80372caf439e3407f2ed10e169f4a034280f51c9e090b4600842a0536d27

See more details on using hashes here.

File details

Details for the file structables-0.3.16-py3-none-any.whl.

File metadata

  • Download URL: structables-0.3.16-py3-none-any.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.2

File hashes

Hashes for structables-0.3.16-py3-none-any.whl
Algorithm Hash digest
SHA256 25447169c9a6d7617d1b48828803f703a7ecdb4913bb19f812bdc6c18310c300
MD5 86481125fb3a8f06a9a6d24eff33acd6
BLAKE2b-256 ab62e1a43890454a118f734f3f19d6bc42093d28357bf3038a6eb054c4e26e3a

See more details on using hashes here.

Supported by

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