An open source alternative front-end to Instructables.
Find a file
Kumi 9dd8f4e2e0
Enhanced environment configuration and content fetching
Extended environment variables to allow for greater configurability and aligned debug mode detection with the new STRUCTABLES_DEBUG variable. Additionally, introduced command-line arguments for specifying Invidious instance URLs and unsafe iframe display settings.

The content fetching logic has been revised for fetching JSON data directly instead of scraping HTML, resulting in a more robust and efficient data extraction process. New templates accommodate the change and present a cleaner UI, including handling of iframes, downloads, and proper proxying of external resources.

HTML templates have been refactored to utilize better layout and styling while enhancing support for iframes and downloads, complete with the new ability to block iframe content from outside sources unless explicitly permitted. This security-focused feature protects end-users from potentially unsafe content.
2024-01-31 12:50:19 +01:00
static Improve text overflow handling in articles 2024-01-17 19:11:43 +01:00
templates Enhanced environment configuration and content fetching 2024-01-31 12:50:19 +01:00
.gitignore Update .gitignore and enhance project structure 2024-01-17 16:43:51 +01:00
cronjob.txt add cronjob text file 2023-06-03 17:44:44 -04:00
LICENSE first commit 2023-06-01 17:25:13 -04:00
main.py Enhanced environment configuration and content fetching 2024-01-31 12:50:19 +01:00
README.md Update Matrix room link in README 2024-01-19 08:16:41 +01:00
requirements.txt Refactor data fetching logic using stdlib 2024-01-16 17:13:59 +01:00

Structables

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

Instances

URL Provided by Country Comments
https://structables.private.coffee/ Private.coffee Austria

Run your own instance

Dependencies

First, create a virtual environment with python3 -m venv venv and activate it with source venv/bin/activate. Then, install the dependencies with:

pip3 install -r requirements.txt.

For the production environment, you also need the uWSGI Python3 plugin. On Debian, it can be installed via apt install uwsgi-plugin-python3

Production

  1. Clone the repository
  2. Run uwsgi --plugin python3 --http-socket 0.0.0.0:8002 --wsgi-file main.py --callable app --processes 4 --threads 2
  3. Point your reverse proxy to http://localhost:8002

Development

  1. Clone the repository
  2. Run python3 main.py
  3. Connect to http://localhost:8002

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.