Skip to content

SolidCraft

SolidCraft is an open-source, parametric 3D CAD application built entirely in pure Rust, running in the browser via WebAssembly with a history-based feature timeline and custom B-rep kernel.

🛠 Installation

Web UI Port: 80 Webhook Port: 9000 Installation Directory: /srv/solidcraft

SolidCraft Web runs as a client-side WebAssembly single-page application served by Nginx in a Debian 13 (Trixie) LXC container on pve03 (VMID 138).

âš™ Config

Webhook Automation

A webhook listener runs on port 9000 to handle automated deployment and update triggers:

curl -X POST http://localhost:9000/hooks/update-app

🚀 Upgrade

task update
uv run python scripts/lxc_update.py solidcraft --node pve03
/root/git/nicholaswilde/homelab/lxc/solidcraft/update.sh

Task List

task: Available tasks for this project:
* create-template:       Create template from existing .env file
* decrypt:               Decrypt sensitive configuration files using SOPS.
* enable:                Enable the application's systemd service.
* encrypt:               Encrypt sensitive configuration files using SOPS.
* export:                Export the task list to `task-list.txt`.
* init:                  Initialize the application's environment and configuration files.
* mklinks:               Create symbolic links for configuration files.
* restart:               Restart the application's systemd service.
* start:                 Start the application's systemd service.
* status:                Check the status of the application's systemd service.
* stop:                  Stop the application's systemd service.
* update:                Update the application or its web bundle.
* upgrade:               Upgrade the application by pulling the latest changes and updating.
* wh:install:            Install and start the systemd webhook service
* wh:logs:               View the webhook service logs
* wh:status:             Check the status of the systemd webhook service
* wh:test:               Test the webhook listener locally

🔗 References