An open source alternative front-end to Instructables.
Find a file
Kumi bcdbf5ec69
Enhanced search integration
Refactored the project search function to dynamically construct query parameters, improving readability and maintainability. Introduced several new parameters to refine search results and included a timeout for reliability. Added logging for better debugging and transparency about the search operations.

Updated category and search routes to use the new search function capabilities, ensuring relevant results and proper exception handling. Additionally, implemented pagination support for better user experience when browsing projects.

To improve the UI, the category and project listing templates have been refreshed with a modern layout, including the use of Bootstrap classes and better organization of content.

Resolves issues with inefficient search parameter construction and user interface inconsistencies.
2024-01-31 19:22:58 +01:00
static Improve text overflow handling in articles 2024-01-17 19:11:43 +01:00
templates Enhanced search integration 2024-01-31 19:22:58 +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 search integration 2024-01-31 19:22:58 +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.