Files
ReachableCEO 38e75fb549 feat: add Puter Cloudron package (Development)
- Create multi-stage Dockerfile with Node.js 23.9-alpine
- Add CloudronManifest.json with PostgreSQL and localstorage addons
- Create .dockerignore to exclude Cloudron package files
- Include README.md with comprehensive Internet OS documentation
- Add .env.example for environment configuration
- Add CHANGELOG.md for version tracking
- Add logo.png (Puter branding)

Puter is "The Internet OS" - an advanced, open-source
internet operating system designed to be feature-rich, exceptionally
fast, and highly extensible.

Package includes:
- Node.js 23.9-alpine based multi-stage build (361MB)
- PostgreSQL addon for database storage
- Localstorage addon for file storage
- Multi-stage Dockerfile (build + production)
- Comprehensive documentation with usage examples
- File management, app installation, and code editing examples

Features supported:
- Internet OS in browser (full desktop experience)
- Personal cloud storage (privacy-first, self-hosted)
- Web app builder and publisher
- App Store with growing ecosystem
- Built-in file manager with drag-and-drop
- Code editor with syntax highlighting
- Terminal with bash shell
- Multi-user support with permissions
- Games platform
- Remote desktop environment
- Alternative to Dropbox, Google Drive, OneDrive
- Window management, taskbar, start menu
- Keyboard shortcuts and efficiency features
- Themes and customizable interface

Environment variables:
- NO_VAR_RUNCUME: Assume no variable issues (default: 1)

Ports:
- 4100: Main HTTP port (web interface and API)

Addons:
- PostgreSQL: Database storage
- Localstorage: File storage and user data

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 14:46:25 -05:00

54 lines
1.0 KiB
Docker

# Build stage
FROM node:23.9-alpine AS build
# Install build dependencies
RUN apk add --no-cache git python3 make g++
# Set working directory
WORKDIR /app
# Copy package files
COPY repo/package*.json ./
# Copy source code
COPY repo/ .
# Verify files are copied
RUN ls -la
# Install node modules (skip optional to reduce size)
RUN npm install --production=false --no-optional
# Build GUI
RUN cd src/gui && npm run build && cd -
# Production stage
FROM node:23.9-alpine
# Install runtime dependencies
RUN apk add --no-cache git
# Create app directories
RUN mkdir -p /opt/puter/app
# Set working directory
WORKDIR /opt/puter/app
# Copy built artifacts from build stage
COPY --from=build /app/src/gui/dist ./dist
COPY --from=build /app/package*.json ./
COPY --from=build /app/src ./src
# Expose port
EXPOSE 4100
# Health check
HEALTHCHECK --interval=30s --timeout=3s --start-period=10s --retries=3 \
CMD wget --no-verbose --tries=1 --spider http://localhost:4100/test || exit 1
# Environment
ENV NO_VAR_RUNCUME=1
# Start Puter
CMD ["npm", "start"]