AltFreeStack
E-commerce

The E-Commerce & Micro-Business Stack

A headless online store, business management (ERP) and digital contract signing — run your business without percentage fees per sale or proprietary ERP licenses.

Combined minimum RAM

~6GB

Estimated savings

Sales, ERP and contract signing with no percentage platform fees

Tools in this pack (4)

Medusa

Headless ecommerce in Node.js, an alternative to Shopify for developers.

E-commerce100% FOSS🔴 Full · ~2GB
docker-compose.yml
version: "3.9"
services:
  medusa:
    image: medusajs/medusa:latest
    restart: unless-stopped
    ports:
      - "9000:9000"
    environment:
      - DATABASE_URL=postgres://medusa:change-me-postgres-password@medusa-db:5432/medusa # password must match the canonical db password below
      - REDIS_URL=redis://medusa-redis:6379
      - JWT_SECRET=change-me-super-secret
      - COOKIE_SECRET=change-me-super-secret
    depends_on:
      - medusa-db
      - medusa-redis
  medusa-db:
    image: postgres:15-alpine
    restart: unless-stopped
    environment:
      - POSTGRES_USER=medusa
      - POSTGRES_PASSWORD=change-me-postgres-password # REQUIRED: generate a random secret before first run
      - POSTGRES_DB=medusa
    volumes:
      - medusa_pg_data:/var/lib/postgresql/data
  medusa-redis:
    image: redis:7-alpine
    restart: unless-stopped
volumes:
  medusa_pg_data:
View Medusa's full profile
ERPNext

Full ERP suite (accounting, inventory, CRM), an alternative to SAP Business One.

CRM & Support100% FOSS🔴 Full · ~2GB
docker-compose.yml
services:
  erpnext:
    image: frappe/erpnext:v15.121.6
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      DB_HOST: erpnext-db
      DB_ROOT_PASSWORD: change-me-mariadb-root-password # REQUIRED: generate a random secret before first run
      ADMIN_PASSWORD: change-me-admin-password # REQUIRED: generate a random secret before first run
      SITE_NAME: localhost # CHANGE THIS TO YOUR DOMAIN
    volumes:
      - erpnext_sites:/home/frappe/frappe-bench/sites
    depends_on:
      - erpnext-db
      - erpnext-redis
  erpnext-db:
    image: mariadb:10.6
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: change-me-mariadb-root-password # must match DB_ROOT_PASSWORD above
    volumes:
      - erpnext_db_data:/var/lib/mysql
  erpnext-redis:
    image: redis:7-alpine
    restart: unless-stopped
volumes:
  erpnext_sites:
  erpnext_db_data:
View ERPNext's full profile
Dolibarr

Modular invoicing, accounting and stock, a lightweight alternative to QuickBooks.

CRM & SupportOpen-Core🟡 Standard · ~1GB
docker-compose.yml
services:
  dolibarr:
    image: dolibarr/dolibarr:24.0.0
    restart: unless-stopped
    ports:
      - "8080:80"
    environment:
      DOLI_DB_HOST: dolibarr-db
      DOLI_DB_NAME: dolibarr
      DOLI_DB_USER: dolibarr
      DOLI_DB_PASSWORD: change-me-mysql-password # REQUIRED: generate a random secret before first run
      DOLI_URL_ROOT: http://localhost:8080 # CHANGE THIS TO YOUR DOMAIN
      DOLI_ADMIN_LOGIN: admin
      DOLI_ADMIN_PASSWORD: change-me-admin-password # REQUIRED: generate a random secret before first run
    depends_on:
      - dolibarr-db
  dolibarr-db:
    image: mariadb:10.6
    restart: unless-stopped
    environment:
      MYSQL_DATABASE: dolibarr
      MYSQL_USER: dolibarr
      MYSQL_PASSWORD: change-me-mysql-password # must match DOLI_DB_PASSWORD above
      MYSQL_ROOT_PASSWORD: change-me-mariadb-root-password # REQUIRED: generate a random secret before first run
    volumes:
      - dolibarr_db_data:/var/lib/mysql
volumes:
  dolibarr_db_data:
View Dolibarr's full profile
Documenso

Electronic document signing, an open source alternative to DocuSign.

Dev ToolsOpen-Core🟡 Standard · ~1GB
docker-compose.yml
version: "3.9"
services:
  documenso:
    image: documenso/documenso:586b1f5cb5df9a4330a9f72b8fb6e80209005696
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - NEXTAUTH_SECRET=change-me-super-secret
      - NEXT_PUBLIC_WEBAPP_URL=http://localhost:3000 # CHANGE THIS TO YOUR DOMAIN
      - DATABASE_URL=postgresql://documenso:change-me-postgres-password@documenso-db:5432/documenso # password must match the canonical db password below
    depends_on:
      - documenso-db
  documenso-db:
    image: postgres:15-alpine
    restart: unless-stopped
    environment:
      - POSTGRES_USER=documenso
      - POSTGRES_PASSWORD=change-me-postgres-password # REQUIRED: generate a random secret before first run
      - POSTGRES_DB=documenso
    volumes:
      - documenso_pg_data:/var/lib/postgresql/data
volumes:
  documenso_pg_data:
View Documenso's full profile