An open source alternative front-end to Instructables.
Kumi
85d5c88294
Migrated project dependencies and metadata into a newly added `pyproject.toml`, aligning with modern Python packaging practices. Removed `requirements.txt` as dependencies are now specified in the unified project configuration. Restructured the project by moving Python code, static assets, and templates into a `src/structables` directory to encapsulate project components better and facilitate packaging. Moreover, refactor `main.py` to read environment variables earlier, streamline argument parsing, and ensure configurations are correctly applied before the Flask app initialization. This reorganization supports better project scalability, simplifies the build process, and enhances maintainability by consolidating project configurations and dependencies. Note: The usage of `pyproject.toml` requires tools that support PEP 518 and might necessitate updates to CI/CD pipelines or developer workflows. |
||
---|---|---|
src/structables | ||
.gitignore | ||
cronjob.txt | ||
LICENSE | ||
pyproject.toml | ||
README.md |
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
- Clone the repository
- Run
uwsgi --plugin python3 --http-socket 0.0.0.0:8002 --wsgi-file main.py --callable app --processes 4 --threads 2
- Point your reverse proxy to http://localhost:8002
Development
- Clone the repository
- Run
python3 main.py
- 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.