MakerWorks-v2

MakerWorks-v2

Application Docker from schartrand77's Repository

Vue d'ensemble

MakerWorks v2 is a self-hosted 3D model hub with STL previews, price estimation, optional Stripe checkout, and an admin dashboard for site settings, pricing, backups, and OrderWorks job monitoring. Point it at any reachable Postgres 15+ instance and map a persistent storage share for uploaded models, covers, avatars, and backups. On Unraid, this primary container also runs the image/preview processing worker by default so uploads use the same database and storage settings as the web app. Unraid note: "Autostart" starts the container when the array/Docker service starts, but crash recovery still depends on Docker restart policy. If the container stops, check its logs: the image startup sequence runs restore, Prisma migrations, admin bootstrap, then the Next.js server and integrated processing worker.

Arguments d'exécution

Interface utilisateur Web
http://[IP]:[PORT:3000]/
Réseau
makerworks-net
Coquille
bash
Privilégié
false

Configuration du modèle

Web PortPorttcp

Port the MakerWorks Next.js server listens on

Cible
3000
Défaut
3000
Valeur
3000
StoragePathrw

Persistent directory for uploaded models, covers, and avatars

Cible
/app/storage
Défaut
/mnt/user/makerworks/storage
Valeur
/mnt/user/makerworks/storage
BackupsPathrw

Persistent backup destination (set BACKUP_DIR to this container path)

Cible
/app/backups
Défaut
/mnt/user/makerworks/storage/backups
Valeur
/mnt/user/makerworks/storage/backups
Bulk Import FolderPathrw

Optional mapped folder used by the bulk upload script. Put source STL/OBJ/3MF/AMF/PLY/WRL/VRML/GLB/GLTF/USD/USDZ/USDA/USDC/ZIP files here and run the importer against /app/imports.

Cible
/app/imports
Défaut
/mnt/user/makerworks/imports
Valeur
/mnt/user/makerworks/imports
DATABASE_URLVariable

Postgres connection string (must be reachable from the container)

Défaut
postgresql://postgres:postgres@postgres:5432/makerworks?schema=public
Valeur
postgresql://postgres:postgres@postgres:5432/makerworks?schema=public
REDIS_URLVariable

Redis connection string used for BullMQ processing queues

Défaut
redis://makerworks-redis:6379
Valeur
redis://makerworks-redis:6379
BASE_URLVariable

Public URL users access (used for redirects/cookies)

Défaut
https://makerworks.example.com
Valeur
https://makerworks.example.com
JWT_SECRETVariable

Secret used to sign user sessions (set to a long random string)

ADMIN_EMAILVariable

Email for the bootstrap administrator account

Défaut
admin@example.com
Valeur
admin@example.com
ADMIN_PASSWORDVariable

Password for the bootstrap administrator (rotated on change)

ADMIN_NAMEVariable

Display name for the bootstrap administrator account

Défaut
Admin
Valeur
Admin
STORAGE_DIRVariable

Internal storage path (leave at /app/storage unless customizing)

Défaut
/app/storage
Valeur
/app/storage
DIRECT_UPLOAD_URLVariable

Optional direct hostname (e.g., https://upload.example.com) used only for uploads to bypass Cloudflare/Tunnel size limits

BULK_UPLOAD_DIRVariable

Default in-container folder scanned by the bulk upload importer

Défaut
/app/imports
Valeur
/app/imports
BULK_UPLOAD_BASE_URLVariable

URL used by the bulk upload importer when run inside the container. Leave at http://127.0.0.1:3000 for Unraid.

Défaut
http://127.0.0.1:3000
Valeur
http://127.0.0.1:3000
S3_BUCKETVariable

Optional S3 bucket (leave blank to store uploads locally on STORAGE_DIR)

S3_REGIONVariable

Region/endpoint for the S3 bucket (e.g., us-east-1)

S3_ACCESS_KEY_IDVariable

Access key for the configured S3-compatible storage

S3_SECRET_ACCESS_KEYVariable

Secret key for the configured S3-compatible storage

COOKIE_SECUREVariable

Set to true when BASE_URL is HTTPS so auth cookies are secure

Défaut
true
Valeur
true
SKIP_DOCKERVariable

Set to 1 on Unraid/non-compose runtimes so backups/restores use local client tools instead of docker compose exec

Défaut
1
Valeur
1
BACKUP_DIRVariable

Backup destination inside the container. Must point to a mapped path (recommended: /app/backups).

Défaut
/app/backups
Valeur
/app/backups
PG_DUMP_BINVariable

Path to pg_dump binary used by backup when SKIP_DOCKER=1 (or docker compose path fails)

Défaut
/usr/bin/pg_dump
Valeur
/usr/bin/pg_dump
PSQL_BINVariable

Path to psql binary used by restore when SKIP_DOCKER=1 (or docker compose path fails)

Défaut
/usr/bin/psql
Valeur
/usr/bin/psql
BACKUP_DOCKER_SERVICEVariable

Docker Compose DB service name used for pg_dump/psql when compose mode is enabled

Défaut
db
Valeur
db
BACKUP_SCHEDULE_ENABLEDVariable

Enable daily scheduled backups (1=true, 0=false)

Défaut
1
Valeur
1
BACKUP_SCHEDULE_TIME_UTCVariable

Daily backup time in UTC (HH:mm)

Défaut
03:00
Valeur
03:00
BACKUP_RUN_ON_STARTVariable

Run one backup when scheduler starts (1=true, 0=false)

Défaut
0
Valeur
0
BACKUP_PRUNE_ON_BACKUPVariable

Prune old backups immediately after each successful backup

Défaut
1
Valeur
1
BACKUP_RETENTION_DAYSVariable

Keep backups newer than this many days (0 disables age-based retention)

Défaut
14
Valeur
14
BACKUP_RETENTION_MAX_COUNTVariable

Always keep at least this many newest backups (0 disables count-based retention)

Défaut
30
Valeur
30
PROCESSING_QUEUE_ATTEMPTSVariable

Queue retry attempts before moving a failed job to dead-letter handling

Défaut
5
Valeur
5
PROCESSING_QUEUE_BACKOFF_MSVariable

Exponential backoff delay (ms) between queue retries

Défaut
5000
Valeur
5000
START_PROCESSING_WORKERVariable

Run the image/preview processor inside this MakerWorks container so it uses the same DATABASE_URL and STORAGE_DIR settings

Défaut
1
Valeur
1
IMAGE_WORKER_CONCURRENCYVariable

Concurrency for image processing inside this container

Défaut
2
Valeur
2
PREVIEW_WORKER_CONCURRENCYVariable

Concurrency for preview processing inside this container

Défaut
1
Valeur
1
PRINTER_PROFILEVariable

Printer preset for speed/energy math (BAMBU_X1C, BAMBU_P1S, PRUSA_MK4, PRUSA_MK3S, CREALITY_K1_MAX, CREALITY_ENDER3_V2, ANYCUBIC_KOBRA2, GENERIC_FDM)

Défaut
BAMBU_X1C
Valeur
BAMBU_X1C
PRINTER_ELECTRIC_RATE_PER_KWHVariable

Electricity rate (per kWh) used for energy estimates

Défaut
0.14
Valeur
0.14
PLA_PRICE_PER_KG_USDVariable

Price of a 1kg PLA spool (USD) used for estimator

Défaut
25.00
Valeur
25.00
PETG_PRICE_PER_KG_USDVariable

Price of a 1kg PETG spool (USD) used for estimator

Défaut
28.00
Valeur
28.00
NEXT_PUBLIC_PLA_PRICE_PER_KGVariable

Expose PLA per-kg cost to the client (used for cart price previews)

Défaut
25.00
Valeur
25.00
NEXT_PUBLIC_PETG_PRICE_PER_KGVariable

Expose PETG per-kg cost to the client

Défaut
28.00
Valeur
28.00
COLOR_SURCHARGE_RATEVariable

Extra cost rate per additional color beyond the first (server-side)

Défaut
0.05
Valeur
0.05
NEXT_PUBLIC_COLOR_SURCHARGE_RATEVariable

Expose the color surcharge rate to the client UI

Défaut
0.05
Valeur
0.05
NEXT_PUBLIC_MAX_CART_COLORSVariable

How many color slots the cart exposes (raise to 8+ if you have multiple AMS units)

Défaut
4
Valeur
4
CURRENCYVariable

Back-end currency (USD or CAD)

Défaut
USD
Valeur
USD
NEXT_PUBLIC_CURRENCYVariable

Client-facing currency label (must match CURRENCY)

Défaut
USD
Valeur
USD
PLA_PRICE_PER_KG_CADVariable

Optional CAD override for PLA per-kg cost

PETG_PRICE_PER_KG_CADVariable

Optional CAD override for PETG per-kg cost

ENERGY_CAD_PER_HOURVariable

Optional CAD override for energy rate per hour

MINIMUM_PRICE_CADVariable

Optional CAD minimum price override

EXTRA_HOURLY_AFTER_FIRST_USDVariable

Extra hourly surcharge after first hour (USD context)

EXTRA_HOURLY_AFTER_FIRST_CADVariable

Extra hourly surcharge after first hour (CAD context)

STRIPE_SECRET_KEYVariable

Stripe secret key (starts with sk_live_ or sk_test_)

NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEYVariable

Stripe publishable key used by the in-app checkout UI

STRIPE_WEBHOOK_SECRETVariable

Stripe webhook signing secret for /api/stripe/webhook

STRIPE_SHIPPING_RATE_IDVariable

Stripe shipping rate ID required when shipped checkout is enabled

STRIPE_INVOICE_DAYS_UNTIL_DUEVariable

Days until due for Stripe invoices sent from invoice checkout

Défaut
14
Valeur
14
STRIPE_TAX_ENABLEDVariable

Set to 1 after Stripe Tax registrations and product tax settings are configured

Défaut
0
Valeur
0
PRINTLAB_BASE_URLVariable

Internal PrintLab URL reachable from the MakerWorks container on the shared Docker network

Défaut
http://PrintLab:8080
Valeur
http://PrintLab:8080
PRINTLAB_AUTH_HEADERVariable

Optional Authorization header for MakerWorks-to-PrintLab admin API calls, for example a Basic or Bearer value

PRINTLAB_SESSION_COOKIEVariable

Optional PrintLab session cookie for MakerWorks-to-PrintLab admin API calls

PRINTLAB_API_KEYVariable

Optional PrintLab API key for MakerWorks-to-PrintLab API calls when PrintLab is configured to accept one

PRINTLAB_API_KEY_HEADERVariable

Header name used with PRINTLAB_API_KEY

Défaut
X-API-Key
Valeur
X-API-Key
MAKERWORKS_INBOUND_SECRETVariable

Shared secret MakerWorks expects for inbound job updates to /api/makerworks/jobs (send via Authorization Bearer token or MakerWorks signature header)

PRINTLAB_WEBHOOK_SECRETVariable

Shared secret expected on PrintLab callbacks into MakerWorks

STOCKWORKS_BASE_URLVariable

Internal StockWorks URL reachable from the MakerWorks container on the shared Docker network

Défaut
http://StockWorks:8000
Valeur
http://StockWorks:8000
STOCKWORKS_ADMIN_USERNAMEVariable

Optional StockWorks admin username for MakerWorks-to-StockWorks inventory checks

STOCKWORKS_ADMIN_PASSWORDVariable

Optional StockWorks admin password for MakerWorks-to-StockWorks inventory checks

STOCKWORKS_USERNAMEVariable

Optional StockWorks username fallback

STOCKWORKS_PASSWORDVariable

Optional StockWorks password fallback

STOCKWORKS_COLOR_OVERRIDESVariable

Optional JSON color override map for StockWorks filament availability

HOLIDAY_THEMEVariable

Optional seasonal theme: christmas, halloween, easter, valentines, or maythefourth

NEXT_PUBLIC_CONTACT_EMAILVariable

Contact email shown on the site

Défaut
info@makerworks.app
Valeur
info@makerworks.app
NEXT_PUBLIC_BRAND_NAMEVariable

Display name shown across the storefront and emails

Défaut
MakerWorks
Valeur
MakerWorks
NEXT_PUBLIC_BRAND_VERSIONVariable

Optional suffix shown next to the logo (leave blank to hide)

Défaut
v2
Valeur
v2
NEXT_PUBLIC_BRAND_LAB_NAMEVariable

Label used for the pickup location in checkout copy

Défaut
MakerWorks lab
Valeur
MakerWorks lab
NEXT_PUBLIC_BRAND_HANDLEVariable

Default handle placeholder for social profile fields

Défaut
@makerworks
Valeur
@makerworks
SMTP_HOSTVariable

SMTP host for verification emails

SMTP_PORTVariable

SMTP port

SMTP_USERVariable

SMTP username

SMTP_PASSWORDVariable

SMTP password

SMTP_SECUREVariable

Use TLS/SSL (true/false) depending on your SMTP provider

RECEIPT_FROM_EMAILVariable

From address for verification/receipt emails

Défaut
MakerWorks Receipts <receipts@makerworks.app>
Valeur
MakerWorks Receipts <receipts@makerworks.app>
RECEIPT_REPLY_TO_EMAILVariable

Reply-to address for outgoing emails

Défaut
MakerWorks <info@makerworks.app>
Valeur
MakerWorks <info@makerworks.app>
DISCORD_BOT_TOKENVariable

Optional bot token used for Discord announcements

DISCORD_CHANNEL_IDVariable

Discord channel ID used for announcements

DISCORD_ADMIN_BOT_TOKENVariable

Bot token used for admin notifications (falls back to DISCORD_BOT_TOKEN when unset)

DISCORD_ADMIN_CHANNEL_IDVariable

Discord channel ID for admin-only alerts (new users/uploads)

Catégories

Détails

Référentiel
ghcr.io/schartrand77/mkw2:latest
Dernière mise à jour2026-05-31
Première vue2025-12-19

Exécutez MakerWorks-v2 sur Unraid.

MakerWorks-v2 est listé dans Community Apps pour Unraid OS. Explorez Unraid pour créer un serveur domestique flexible, un NAS ou un laboratoire domestique.