IMPLANTAÇÃO DO SERVIDOR // ZERO DEPENDÊNCIAS

INSTALAÇÃO & SETUP

Coloque o Fuxico no ar em segundos. Escolha entre Docker Compose (FrankenPHP com atualizações automáticas via Watchtower) ou o servidor portátil em arquivo único fuxico.php.

🐳 FrankenPHP + Watchtower 🐘 PHP 8.2+ Portátil em Arquivo Único 🔒 SQLite com Blindagem Automática

🐳 1. Implantação com Docker Compose (Recomendado)

A imagem de produção oficial é baseada em FrankenPHP Alpine, roda com usuário não-root e já vem pré-configurada para persistência de dados e atualizações automáticas via Watchtower:

docker-compose.yml
services:
  fuxico:
    image: lumenpink/fuxico:latest
    container_name: fuxico
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - FUXICO_PUBLIC_MODE=true
      - FUXICO_DATA_DIR=/workspace/data
      - FUXICO_AUTH_TOKENS=tatanka
    volumes:
      - ./data:/workspace/data
    labels:
      - "com.centurylinklabs.watchtower.scope=fuxico"

  watchtower:
    image: containrrr/watchtower
    container_name: fuxico_watchtower
    restart: unless-stopped
    environment:
      - WATCHTOWER_SCOPE=fuxico
      - WATCHTOWER_POLL_INTERVAL=3600
      - WATCHTOWER_CLEANUP=true
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
bash — subir contêiner
docker compose up -d

🐘 2. Servidor Portátil em Arquivo Único (Sem Composer)

Baixe o arquivo fuxico.php diretamente e execute em qualquer servidor ou VPS com PHP 8.2+. Sem pasta vendor, sem instalar banco de dados, sem compilação:

bash — execução standalone
# 1. Baixar o servidor completo em arquivo único:
curl -O https://fuxico.2lp.in/fuxico.php

# 2. Iniciar servidor embutido instantâneo:
FUXICO_PUBLIC_MODE=true php -S 0.0.0.0:8080 fuxico.php

🌐 3. Configuração de Servidores Web (Proxy Reverso)

Caddy (Recomendado)

Caddyfile
fux.exemplo.com {
    encode zstd gzip

    request_body {
        max_size 512MB
    }

    reverse_proxy 127.0.0.1:8080
}

Nginx

nginx.conf
server {
    listen 80;
    server_name fux.exemplo.com;
    client_max_body_size 500M;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

⚙️ 4. Variáveis de Ambiente

Personalize o comportamento do Fuxico exportando qualquer uma das variáveis abaixo:

Variável Padrão Descrição
FUXICO_PUBLIC_MODE false Quando true, qualquer pessoa pode enviar arquivos sem token (modo 0x0.st público). Quando false, exige um token mestre.
FUXICO_AUTH_TOKENS tatanka Lista de tokens mestres autorizados separados por vírgula (para instâncias privadas).
FUXICO_DATA_DIR ./data Diretório raiz onde o banco SQLite e os arquivos enviados são armazenados.
FUXICO_MAX_UPLOAD_SIZE 524288000 Tamanho máximo aceito por upload em bytes (padrão: 500 MB).
FUXICO_SLUG_LENGTH 5 Número de caracteres de slugs normais (ex: /abcde.png).
FUXICO_SECRET_SLUG_LENGTH 16 Número de caracteres de slugs secretos de alta entropia (ex: /8x9yt4m2k9p1q7z0.png).
FUXICO_BASE_URL (automático) Sobrescreve a URL base da aplicação (ex: https://fux.exemplo.com).
FUXICO_LANG pt Idioma padrão da interface (pt ou en). Detecta o cabeçalho Accept-Language se omitido.