f409a9edd7
- Bundle 31 JS files → single app.{hash}.js (oxc minifier)
- Bundle 36 CSS files → single app.{hash}.css (lightningcss)
- Resolve CSS @import chains at build time
- Inline theme-init.js to eliminate render-blocking script
- Minify all individual JS/CSS/JSON assets in static-dist/
- Auto-update Service Worker cache manifest with bundle hashes
- FNV hash-based cache-busting filenames
Results: 88 → 12 requests, 640 kB → 96.5 kB transferred (-85%)
Build modes:
- Debug: copies HTML to OUT_DIR, serves original static/
- Release: generates static-dist/ with processed assets
Also:
- Update Dockerfile to include build.rs in cacher stage
- Serve static-dist/ in release Docker builds
- Remove host static/ bind mount from docker-compose
- Switch include_str!() to OUT_DIR for all HTML pages
47 lines
884 B
YAML
Executable File
47 lines
884 B
YAML
Executable File
services:
|
|
postgres:
|
|
image: postgres:18.2-alpine3.23
|
|
restart: always
|
|
environment:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_DB: oxicloud
|
|
ports:
|
|
- "5432:5432"
|
|
networks:
|
|
- oxicloud
|
|
volumes:
|
|
- pg_data:/var/lib/postgresql/data
|
|
- ./db/schema.sql:/docker-entrypoint-initdb.d/10-schema.sql
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
oxicloud:
|
|
image: oxicloud
|
|
restart: always
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
ports:
|
|
- "8086:8086"
|
|
networks:
|
|
- oxicloud
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
env_file:
|
|
- .env
|
|
volumes:
|
|
- storage_data:/app/storage
|
|
|
|
networks:
|
|
oxicloud:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
pg_data:
|
|
storage_data:
|