Modules built: - Home: landing page with live chain stats and service directory - Chain: DaemonRpc singleton, config, events - Explorer: web + API controllers (block, tx, alias, search, stats) - Names: TLD registrar (availability, lookup, directory, registration) - Trade: DEX controllers + API (config, pairs, orders) - Pool: dashboard + PoolClient service (stats, blocks, payments, miner) Infrastructure: - composer.json: lthn/lthn.io deps (core/php + laravel 12) - Dockerfile: FrankenPHP with Caddy - Caddyfile: PHP server config Co-Authored-By: Charon <charon@lethean.io>
32 lines
758 B
Docker
32 lines
758 B
Docker
FROM dunglas/frankenphp:latest
|
|
|
|
WORKDIR /app
|
|
|
|
# System deps
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
git unzip curl \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Composer
|
|
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
|
|
|
# App source
|
|
COPY . /app
|
|
|
|
# Install deps
|
|
RUN composer install --no-dev --optimize-autoloader --no-interaction 2>/dev/null || true
|
|
|
|
# Storage dirs
|
|
RUN mkdir -p storage/framework/{sessions,views,cache/data} \
|
|
&& chmod -R 777 storage bootstrap/cache 2>/dev/null || true
|
|
|
|
# Environment
|
|
ENV APP_ENV=production
|
|
ENV APP_DEBUG=false
|
|
ENV APP_URL=https://lthn.io
|
|
ENV CHAIN_MODE=remote
|
|
ENV DAEMON_RPC=http://127.0.0.1:46941/json_rpc
|
|
|
|
EXPOSE 443 80
|
|
|
|
CMD ["frankenphp", "run", "--config", "/app/Caddyfile"]
|