2 Commits

Author SHA1 Message Date
Your Name
b38bd6a249 Make Ente CLI usable out of the box 2025-09-29 22:05:24 -06:00
Your Name
a8b22a95c8 Bundle Ente CLI for Cloudron console 2025-09-29 21:37:33 -06:00
4 changed files with 43 additions and 1 deletions

View File

@@ -7,7 +7,7 @@
"contactEmail": "contact@ente.io", "contactEmail": "contact@ente.io",
"tagline": "Open Source End-to-End Encrypted Photos & Authentication", "tagline": "Open Source End-to-End Encrypted Photos & Authentication",
"upstreamVersion": "1.0.0", "upstreamVersion": "1.0.0",
"version": "0.1.122", "version": "0.1.127",
"healthCheckPath": "/ping", "healthCheckPath": "/ping",
"httpPort": 3080, "httpPort": 3080,
"memoryLimit": 1073741824, "memoryLimit": 1073741824,

View File

@@ -143,6 +143,7 @@ ENV GOFLAGS="-modfile=/app/data/go/go.mod -mod=mod"
ENV PATH="/usr/local/go/bin:${PATH}" ENV PATH="/usr/local/go/bin:${PATH}"
ENV GOSUMDB=off ENV GOSUMDB=off
ENV GOMODCACHE="/app/data/go/pkg/mod" ENV GOMODCACHE="/app/data/go/pkg/mod"
ENV HOME=/app/data/home
# Copy the web app built files from the first stage # Copy the web app built files from the first stage
COPY --from=web-builder /build/web/photos /app/web/photos COPY --from=web-builder /build/web/photos /app/web/photos
@@ -150,6 +151,18 @@ COPY --from=web-builder /build/web/accounts /app/web/accounts
COPY --from=web-builder /build/web/auth /app/web/auth COPY --from=web-builder /build/web/auth /app/web/auth
COPY --from=web-builder /build/web/cast /app/web/cast COPY --from=web-builder /build/web/cast /app/web/cast
# Build Ente CLI and place binary in /app/code
WORKDIR /app/code/cli
RUN env GOFLAGS= GOMODCACHE=/tmp/cli-go-cache GO111MODULE=on go build -o /app/code/ente . && chmod +x /app/code/ente
WORKDIR /app/code
# Symlink CLI into PATH for convenience
RUN ln -sf /app/code/ente /usr/local/bin/ente
# Prepare CLI data directory symlink to persistent storage
RUN mkdir -p /app/data/cli-data && ln -s /app/data/cli-data /cli-data
# Copy Museum server binary from builder stage to app directory (not data volume) # Copy Museum server binary from builder stage to app directory (not data volume)
RUN mkdir -p /app/museum-bin RUN mkdir -p /app/museum-bin
COPY --from=museum-builder /ente/server/museum /app/museum-bin/museum COPY --from=museum-builder /ente/server/museum /app/museum-bin/museum

View File

@@ -19,3 +19,9 @@ Before you can use Ente, you need to configure an S3-compatible storage service:
1. Once S3 is configured, visit your app URL to create an admin account 1. Once S3 is configured, visit your app URL to create an admin account
2. Configure your mobile apps to use your custom self-hosted server (Settings → Advanced → Custom Server) 2. Configure your mobile apps to use your custom self-hosted server (Settings → Advanced → Custom Server)
3. Enjoy your private, end-to-end encrypted photo storage! 3. Enjoy your private, end-to-end encrypted photo storage!
## Ente CLI
- The Ente CLI binary is pre-built at `/app/code/ente` inside the app container.
- Open the Cloudron web terminal (working directory `/app/code`) and run commands with `./ente ...` or add `/app/code` to your `PATH`.
- A writable CLI config template lives at `/app/data/home/.ente/config.yaml` for pointing the CLI to your instance.

View File

@@ -22,6 +22,16 @@ log() {
log "INFO" "Starting Ente Cloudron app" log "INFO" "Starting Ente Cloudron app"
log "INFO" "Running in Cloudron environment with domain: ${CLOUDRON_APP_DOMAIN}" log "INFO" "Running in Cloudron environment with domain: ${CLOUDRON_APP_DOMAIN}"
# Ensure HOME is writable (needed for CLI usage)
HOME_DIR="/app/data/home"
export HOME="$HOME_DIR"
mkdir -p "$HOME"
# Ensure CLI data directory persists across restarts
CLI_DATA_PERSIST="/app/data/cli-data"
mkdir -p "$CLI_DATA_PERSIST"
# Prevent infinite loops through startup flag # Prevent infinite loops through startup flag
if [ -f "/app/data/startup_in_progress" ]; then if [ -f "/app/data/startup_in_progress" ]; then
if [ "$(find /app/data/startup_in_progress -mmin +2)" ]; then if [ "$(find /app/data/startup_in_progress -mmin +2)" ]; then
@@ -140,6 +150,19 @@ else
write_default_s3_template write_default_s3_template
fi fi
# Seed Ente CLI configuration directory
ENTE_CLI_CONFIG_DIR="$HOME/.ente"
ENTE_CLI_CONFIG_FILE="$ENTE_CLI_CONFIG_DIR/config.yaml"
if [ ! -f "$ENTE_CLI_CONFIG_FILE" ]; then
mkdir -p "$ENTE_CLI_CONFIG_DIR"
cat > "$ENTE_CLI_CONFIG_FILE" << EOF
# Ente CLI configuration
# Uncomment and set the host to point the CLI to this Cloudron deployment.
#host: https://${CLOUDRON_APP_DOMAIN:-localhost}
EOF
chown -R cloudron:cloudron "$HOME_DIR" || true
fi
S3_ACCESS_KEY="${S3_ACCESS_KEY:-$DEFAULT_S3_ACCESS_KEY}" S3_ACCESS_KEY="${S3_ACCESS_KEY:-$DEFAULT_S3_ACCESS_KEY}"
S3_SECRET_KEY="${S3_SECRET_KEY:-$DEFAULT_S3_SECRET_KEY}" S3_SECRET_KEY="${S3_SECRET_KEY:-$DEFAULT_S3_SECRET_KEY}"
S3_ENDPOINT="${S3_ENDPOINT:-$DEFAULT_S3_ENDPOINT}" S3_ENDPOINT="${S3_ENDPOINT:-$DEFAULT_S3_ENDPOINT}"