reiizumi/sachiko-frontend

By reiizumi

Updated 3 months ago

API for managing server inventory, network, IP address, shared folders, and scheduled tasks

Image
Networking
0

227

reiizumi/sachiko-frontend repository overview

Sachiko Frontend

Web application for managing server inventory, network devices, IP address allocation, shared folders, and scheduled tasks. Served by nginx:alpine as a non-root user (nginx, UID 101).

Prerequisites

  • Docker
  • Sachiko API accessible from the browser
  • OIDC Identity Provider with a valid discovery endpoint

Running

docker run -d \
  -p 3000:3000 \
  -e SACHIKO_API_BASE_URL=https://api.example.com/api/v1 \
  -e SACHIKO_OIDC_WELL_KNOWN_URL=https://idp.example.com/.well-known/openid-configuration \
  -e SACHIKO_OIDC_CLIENT_ID=sachiko \
  -e SACHIKO_ENVIRONMENT=production \
  reiizumi/sachiko-frontend:latest

Environment Variables

Configuration is injected at container startup via environment variables. The entrypoint script generates a config.js file that the browser loads before the application.

No rebuild is required to change configuration -- just restart the container with the new environment variables.

VariableDefaultDescription
SACHIKO_OIDC_WELL_KNOWN_URL(none)OIDC Discovery endpoint for PKCE login flow.
SACHIKO_OIDC_CLIENT_IDsachikoOIDC client identifier.
SACHIKO_OIDC_USER_NAME_CLAIMnameToken claim for display name extraction.
SACHIKO_API_BASE_URL(none)API base URL (must include /api/v1).
SACHIKO_ENVIRONMENTproductionEnvironment label shown in the header.
SACHIKO_CURRENCY_SYMBOLCurrency symbol for price fields.
SACHIKO_NETWORK_SUBNET192.168.1.0/24Subnet for IP address display.

Container Details

  • Base image: nginx:1-alpine
  • Port: 3000
  • User: nginx (UID 101) -- runs as non-root
  • Entrypoint: docker-entrypoint.sh generates /usr/share/nginx/html/config.js from SACHIKO_* env vars
  • SPA routing: All non-file requests are served index.html for client-side routing
  • Static asset caching: JS, CSS, images, and fonts are served with 1-year cache headers
  • Runtime config: config.js is served with no-store cache headers so configuration changes take effect immediately

Moon.cat - GitLab Repository

Tag summary

Content type

Image

Digest

sha256:cd9d2dfef

Size

28.6 MB

Last updated

3 months ago

docker pull reiizumi/sachiko-frontend:1.0.2