Fixed Caddy config and file permissions issues
This commit is contained in:
parent
2fac328b3c
commit
20c0f80de0
147
start.sh
147
start.sh
@ -10,6 +10,11 @@ echo "==> Starting Ente Cloudron app..."
|
||||
# Create necessary directories
|
||||
mkdir -p /app/data/config /app/data/storage /app/data/caddy /app/data/go /app/data/logs
|
||||
|
||||
# Create and set proper permissions for patched directory early
|
||||
mkdir -p /app/data/patched
|
||||
chmod -R 777 /app/data/patched
|
||||
echo "==> Created and set full permissions (777) on /app/data/patched directory"
|
||||
|
||||
# Add comment about Cloudron filesystem limitations
|
||||
echo "==> NOTE: Running in Cloudron environment with limited write access"
|
||||
echo "==> Writable directories: /app/data, /tmp, /run"
|
||||
@ -400,6 +405,7 @@ echo "==> Created db_override.go in writable location: /app/data/overrides"
|
||||
mkdir -p /app/data/patched
|
||||
cp /app/data/overrides/db_override.go /app/data/patched/
|
||||
chmod -R 777 /app/data/patched
|
||||
chmod 666 /app/data/patched/db_override.go
|
||||
echo "==> Copied db_override.go to patched directory for Go compiler compatibility"
|
||||
echo "==> Set permissions on patched directory to 777"
|
||||
|
||||
@ -474,25 +480,45 @@ if [ -d "$SERVER_DIR/cmd/museum" ]; then
|
||||
#!/bin/bash
|
||||
# Unset any module-related flags that cause issues
|
||||
unset GOFLAGS
|
||||
cd "$SERVER_DIR" && \
|
||||
PGHOST="${CLOUDRON_POSTGRESQL_HOST}" \
|
||||
PGPORT="${CLOUDRON_POSTGRESQL_PORT}" \
|
||||
PGUSER="${CLOUDRON_POSTGRESQL_USERNAME}" \
|
||||
PGPASSWORD="${CLOUDRON_POSTGRESQL_PASSWORD}" \
|
||||
PGDATABASE="${CLOUDRON_POSTGRESQL_DATABASE}" \
|
||||
PGSSLMODE="disable" \
|
||||
ENTE_PG_HOST="${MUSEUM_DB_HOST}" \
|
||||
ENTE_PG_PORT="${MUSEUM_DB_PORT}" \
|
||||
ENTE_PG_USER="${MUSEUM_DB_USER}" \
|
||||
ENTE_PG_PASSWORD="${MUSEUM_DB_PASSWORD}" \
|
||||
ENTE_PG_DATABASE="${MUSEUM_DB_NAME}" \
|
||||
ENTE_PG_DSN="postgres://${MUSEUM_DB_USER}:${MUSEUM_DB_PASSWORD}@${MUSEUM_DB_HOST}:${MUSEUM_DB_PORT}/${MUSEUM_DB_NAME}?sslmode=disable&host=${MUSEUM_DB_HOST}" \
|
||||
CLOUDRON_POSTGRESQL_HOST="${CLOUDRON_POSTGRESQL_HOST}" \
|
||||
CLOUDRON_POSTGRESQL_PORT="${CLOUDRON_POSTGRESQL_PORT}" \
|
||||
CLOUDRON_POSTGRESQL_USERNAME="${CLOUDRON_POSTGRESQL_USERNAME}" \
|
||||
CLOUDRON_POSTGRESQL_PASSWORD="${CLOUDRON_POSTGRESQL_PASSWORD}" \
|
||||
CLOUDRON_POSTGRESQL_DATABASE="${CLOUDRON_POSTGRESQL_DATABASE}" \
|
||||
cp $SERVER_DIR/cmd/museum/main.go /app/data/patched/ && cd /app/data/patched && GO111MODULE=on go run -ldflags "-X 'github.com/lib/pq.defaulthost=${MUSEUM_DB_HOST}'" *.go db force 25
|
||||
unset GO111MODULE
|
||||
|
||||
# Set PostgreSQL environment variables
|
||||
export PGHOST="${CLOUDRON_POSTGRESQL_HOST}"
|
||||
export PGPORT="${CLOUDRON_POSTGRESQL_PORT}"
|
||||
export PGUSER="${CLOUDRON_POSTGRESQL_USERNAME}"
|
||||
export PGPASSWORD="${CLOUDRON_POSTGRESQL_PASSWORD}"
|
||||
export PGDATABASE="${CLOUDRON_POSTGRESQL_DATABASE}"
|
||||
export PGSSLMODE="disable"
|
||||
|
||||
# Create go.mod and go.sum files
|
||||
cd /app/data/patched
|
||||
cat > go.mod <<EOG
|
||||
module ente.io/server
|
||||
|
||||
go 1.24
|
||||
|
||||
require (
|
||||
github.com/lib/pq v1.10.9
|
||||
)
|
||||
EOG
|
||||
|
||||
# Generate empty go.sum file (needed to prevent errors)
|
||||
touch go.sum
|
||||
chmod 666 go.mod go.sum
|
||||
|
||||
# Download the dependency to populate go.sum
|
||||
go mod tidy
|
||||
go mod download github.com/lib/pq
|
||||
|
||||
# Echo the pq dependency explicitly
|
||||
cat >> go.sum <<EOG
|
||||
github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=
|
||||
github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
||||
EOG
|
||||
|
||||
# Run the migration
|
||||
export GO111MODULE=on
|
||||
go run -ldflags "-X 'github.com/lib/pq.defaulthost=${MUSEUM_DB_HOST}'" *.go db force 25
|
||||
EOF
|
||||
chmod +x /tmp/run_migration.sh
|
||||
|
||||
@ -531,23 +557,23 @@ elif [ -d "$SERVER_DIR/cmd/museum" ]; then
|
||||
# Create a startup script
|
||||
cat > /tmp/run_server.sh <<EOF
|
||||
#!/bin/bash
|
||||
cd "$SERVER_DIR" && \\
|
||||
PGHOST="${CLOUDRON_POSTGRESQL_HOST}" \\
|
||||
PGPORT="${CLOUDRON_POSTGRESQL_PORT}" \\
|
||||
PGUSER="${CLOUDRON_POSTGRESQL_USERNAME}" \\
|
||||
PGPASSWORD="${CLOUDRON_POSTGRESQL_PASSWORD}" \\
|
||||
PGDATABASE="${CLOUDRON_POSTGRESQL_DATABASE}" \\
|
||||
PGSSLMODE="disable" \\
|
||||
ENTE_PG_HOST="${MUSEUM_DB_HOST}" \\
|
||||
ENTE_PG_PORT="${MUSEUM_DB_PORT}" \\
|
||||
ENTE_PG_USER="${MUSEUM_DB_USER}" \\
|
||||
ENTE_PG_PASSWORD="${MUSEUM_DB_PASSWORD}" \\
|
||||
ENTE_PG_DATABASE="${MUSEUM_DB_NAME}" \\
|
||||
ENTE_PG_DSN="postgres://${MUSEUM_DB_USER}:${MUSEUM_DB_PASSWORD}@${MUSEUM_DB_HOST}:${MUSEUM_DB_PORT}/${MUSEUM_DB_NAME}?sslmode=disable&host=${MUSEUM_DB_HOST}" \\
|
||||
CLOUDRON_POSTGRESQL_HOST="${CLOUDRON_POSTGRESQL_HOST}" \\
|
||||
CLOUDRON_POSTGRESQL_PORT="${CLOUDRON_POSTGRESQL_PORT}" \\
|
||||
CLOUDRON_POSTGRESQL_USERNAME="${CLOUDRON_POSTGRESQL_USERNAME}" \\
|
||||
CLOUDRON_POSTGRESQL_PASSWORD="${CLOUDRON_POSTGRESQL_PASSWORD}" \\
|
||||
cd "$SERVER_DIR" && \
|
||||
PGHOST="${CLOUDRON_POSTGRESQL_HOST}" \
|
||||
PGPORT="${CLOUDRON_POSTGRESQL_PORT}" \
|
||||
PGUSER="${CLOUDRON_POSTGRESQL_USERNAME}" \
|
||||
PGPASSWORD="${CLOUDRON_POSTGRESQL_PASSWORD}" \
|
||||
PGDATABASE="${CLOUDRON_POSTGRESQL_DATABASE}" \
|
||||
PGSSLMODE="disable" \
|
||||
ENTE_PG_HOST="${MUSEUM_DB_HOST}" \
|
||||
ENTE_PG_PORT="${MUSEUM_DB_PORT}" \
|
||||
ENTE_PG_USER="${MUSEUM_DB_USER}" \
|
||||
ENTE_PG_PASSWORD="${MUSEUM_DB_PASSWORD}" \
|
||||
ENTE_PG_DATABASE="${MUSEUM_DB_NAME}" \
|
||||
ENTE_PG_DSN="postgres://${MUSEUM_DB_USER}:${MUSEUM_DB_PASSWORD}@${MUSEUM_DB_HOST}:${MUSEUM_DB_PORT}/${MUSEUM_DB_NAME}?sslmode=disable&host=${MUSEUM_DB_HOST}" \
|
||||
CLOUDRON_POSTGRESQL_HOST="${CLOUDRON_POSTGRESQL_HOST}" \
|
||||
CLOUDRON_POSTGRESQL_PORT="${CLOUDRON_POSTGRESQL_PORT}" \
|
||||
CLOUDRON_POSTGRESQL_USERNAME="${CLOUDRON_POSTGRESQL_USERNAME}" \
|
||||
CLOUDRON_POSTGRESQL_PASSWORD="${CLOUDRON_POSTGRESQL_PASSWORD}" \
|
||||
CLOUDRON_POSTGRESQL_DATABASE="${CLOUDRON_POSTGRESQL_DATABASE}"
|
||||
EOF
|
||||
|
||||
@ -859,33 +885,28 @@ cat > /app/data/caddy/Caddyfile <<EOT
|
||||
output file /app/data/logs/caddy.log
|
||||
}
|
||||
|
||||
# MIME types settings
|
||||
mime {
|
||||
# JavaScript files
|
||||
ext js application/javascript
|
||||
# Next.js chunks
|
||||
path /_next/static/chunks/* application/javascript
|
||||
# CSS files
|
||||
ext css text/css
|
||||
# JSON files
|
||||
ext json application/json
|
||||
# SVG files
|
||||
ext svg image/svg+xml
|
||||
# WOFF2 font files
|
||||
ext woff2 font/woff2
|
||||
}
|
||||
|
||||
# Root path serves the photos app
|
||||
handle / {
|
||||
root * /app/web/photos
|
||||
try_files {path} /index.html
|
||||
file_server
|
||||
file_server {
|
||||
# Set headers for common static file types
|
||||
header /*.js Content-Type application/javascript
|
||||
header /*.css Content-Type text/css
|
||||
header /*.json Content-Type application/json
|
||||
header /*.svg Content-Type image/svg+xml
|
||||
header /*.woff2 Content-Type font/woff2
|
||||
}
|
||||
}
|
||||
|
||||
# Next.js static files
|
||||
handle /_next/* {
|
||||
root * /app/web/photos
|
||||
file_server
|
||||
file_server {
|
||||
# Set specific headers for Next.js chunks
|
||||
header /static/chunks/*.js Content-Type application/javascript
|
||||
header /static/css/*.css Content-Type text/css
|
||||
}
|
||||
}
|
||||
|
||||
# Accounts app
|
||||
@ -893,7 +914,11 @@ cat > /app/data/caddy/Caddyfile <<EOT
|
||||
root * /app/web/accounts
|
||||
uri strip_prefix /accounts
|
||||
try_files {path} /index.html
|
||||
file_server
|
||||
file_server {
|
||||
# Set headers for common static file types
|
||||
header /*.js Content-Type application/javascript
|
||||
header /*.css Content-Type text/css
|
||||
}
|
||||
}
|
||||
|
||||
# Auth app
|
||||
@ -901,7 +926,11 @@ cat > /app/data/caddy/Caddyfile <<EOT
|
||||
root * /app/web/auth
|
||||
uri strip_prefix /auth
|
||||
try_files {path} /index.html
|
||||
file_server
|
||||
file_server {
|
||||
# Set headers for common static file types
|
||||
header /*.js Content-Type application/javascript
|
||||
header /*.css Content-Type text/css
|
||||
}
|
||||
}
|
||||
|
||||
# Cast app
|
||||
@ -909,7 +938,11 @@ cat > /app/data/caddy/Caddyfile <<EOT
|
||||
root * /app/web/cast
|
||||
uri strip_prefix /cast
|
||||
try_files {path} /index.html
|
||||
file_server
|
||||
file_server {
|
||||
# Set headers for common static file types
|
||||
header /*.js Content-Type application/javascript
|
||||
header /*.css Content-Type text/css
|
||||
}
|
||||
}
|
||||
|
||||
# Main API proxy
|
||||
|
Loading…
x
Reference in New Issue
Block a user