Keri sisuni

VM-Pelican🔗

Debina 13 server
Basic ssh setup tehtud, et saaks ligi VS Code-iga

Kasutasin Pelican enda setup juhendit Pelican Docs - Getting Started

Panel🔗

Getting Started🔗

PHP install käsk mis ei ole kirjas lehel (installin php8.4 kuna uuemat pole hetkel saadaval Debianis):
apt install php8.4 php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,sqlite3,fpm}

Veel asjad mida vaja:
apt install curl tar unzip

Webserver Configuration🔗

Kasutan Caddy kuna seda oli lihtsam mul aru saada / muuta.
Debianis ei ole piisavalt uus Caddy, selleks pidi lisama juurde Repo, ei mäleta mis käsk selleks, kasutasin AI, aga uuem Caddy on vajalik kuna vanem ei toeta 'trusted_proxies' valikut, aga mul seda vaja.
apt install caddy

Caddyfile

Ei ole päris sama asi nagu on Pelican lehel kuna kasutan NPM ehk "double proxy" koos Caddy-ga

{
    servers :80 {
        trusted_proxies static 192.168.1.22
        timeouts {
            read_body 120s
        }
    }
}

# Using :80 allows Caddy to listen on HTTP without interfering with NPM's SSL
pelican.timmo.ee:80 {
    root * /var/www/pelican/public

    # Crucial: This tells PHP that the original request was HTTPS
    # even though it's arriving at Caddy via HTTP
    php_fastcgi unix//run/php/php8.4-fpm.sock {
        env HTTPS on
        env HTTP_X_FORWARDED_PROTO https
        env HTTP_PROXY ""

        env PHP_VALUE "upload_max_filesize = 100M
        post_max_size = 100M"

        read_timeout 300s
        dial_timeout 300s
        write_timeout 300s
    }

    file_server

    # Keep your existing logic
    request_body {
        max_size 100m
    }
    respond /.ht* 403

    log {
        output file /var/log/caddy/pelican.log {
            roll_size 100MiB
            roll_keep_for 7d
        }
        level INFO
    }
}

Panel Setup🔗

Peale esimest käsku on vaja muuta ka .env faili:

.env fail

Kindlasti peab paika panema kaks asja:

APP_URL=https://pelican.timmo.ee  
TRUSTED_PROXIES=192.168.1.22,192.168.1.26  
Trusted proxies all ma tegelt ei ole kindel kas peab lisama serveri ise, mul troubleshoot-imisest jäi sinna alles

Web-Installer🔗

Et sa saaksid ligi veebilehele peale Caddyfile või .env faili muutmist võib sul vaja olla Laravel-i cache tühjendamine
Kui seda ei tee, siis muudatused nendes failides ei lähe Live-i

AIO käsk:
php artisan optimize:clear

Eraldi käsud:
php artisan config:clear
php artisan cache:clear
php artisan view:clear
php artisan route:clear

Caddyfile-i muutes on vaja seda kasutada:
systemctl restart caddy

Wings🔗

System Requirements

Ei pruugi töötada Virtuozzo, OpenVZ (või OVZ), või LXC sees
Soovitatud kasutada VM-i

Installing Wings🔗

Kasutasin juhendit suht 1:1
https://pelican.dev/docs/wings/install

Node / Server🔗

Ausalt ei mäleta, aga see suht ezpz

NB! Ära unusta lisada IP + port mille kaudu server suhtleb
Ma ei mäleta kas seda lisada Node või Server valikus...

Vana info🔗

Vana setup, ei meeldinud

Tegin eraldi konto nimega pelican ja selle alt asjad jooksma kuna root kontoga mingi asi läks katki kui üritasin Pelican-is luua serverit, mingi teema docker-i ja õigustega
Pelican konto all eraldi pelican nimeline kaust veel ja sai pandud 777, et kas panel või docker ei hakkaks vinguma õiguste üle, ei mäleta kumb

Panel + Wings setup🔗

Kasutasin väga palju seda juhist, NPM osa savi
See on tegelt out-dated kuna seal ei kasutata Node loomisel valikut "HTTPS with (reverse) proxy", ta piltidel seda valikut ei ole

Compose fail
services:
  panel:
    image: ghcr.io/pelican-dev/panel:latest
    container_name: pelican-panel
    restart: always
    stdin_open: true
    tty: true
    ports:
      - "8080:80"
    extra_hosts:
      - "host.docker.internal:host-gateway"
    volumes:
      - ./panel/data:/pelican-data
      - ./panel/logs:/var/www/html/storage/logs
      - ./panel/Caddyfile:/etc/caddy/Caddyfile
    environment:
      TZ: Europe/Tallinn
      APP_TIMEZONE: Europe/Tallinn
      APP_ENV: production
      APP_URL: "https://pelican.timmo.ee"
      ADMIN_EMAIL: "pelican.admin@timmo.ee"
      TRUSTED_PROXIES: 192.168.1.22
    networks:
      - pelican

  wings:
    image: ghcr.io/pelican-dev/wings:latest
    container_name: pelican-wings
    restart: unless-stopped
    ports:
      - "2022:2022"
      - "8443:443"
    stdin_open: true
    tty: true
    environment:
      TZ: Europe/Tallinn # Replace with your time zone
      APP_TIMEZONE: Europe/Tallinn # Replace with your time zone
      WINGS_UID: 1000
      WINGS_GID: 1000
      WINGS_USERNAME: pelican # Change if you want
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "/var/lib/docker/containers/:/var/lib/docker/containers/"
      - "/etc/pelican/:/etc/pelican/"
      - "/var/lib/pelican/:/var/lib/pelican/"
      - "/var/log/pelican/:/var/log/pelican/"
      - "/tmp/pelican/:/tmp/pelican/"
      - "/etc/ssl/certs:/etc/ssl/certs:ro"
    networks:
      - wings1

networks:
  pelican:
    name: pelican
  wings1:
    name: wings1
    driver: bridge
    ipam:
      config:
        - subnet: 172.50.0.0/16
    driver_opts:
      com.docker.network.bridge.name: wings1

Ära Wings kohe tööle pane, vajab eraldi config-i mida tekitab osaliselt Panel
Vaja oli ka Caddyfile-i, et oleks ligipääs võimalik NPM või muu reverse proxy kaudu

Caddyfile sisu
{
    admin off

    servers {
        trusted_proxies static 192.168.1.22
    }
}

# Only listen on HTTP internally because NPM handles TLS externally.
:80 {
    root * /var/www/html/public
    encode gzip

    php_fastcgi 127.0.0.1:9000 {
        env PHP_VALUE "upload_max_filesize = 256M
                       post_max_size = 256M"
    }

    file_server
}

Failipuu umbes selline

> pelican  
    > docker-compose.yml  
    > panel  
        > Caddyfile  
Muud kaustad peaks tekkima ise, aga ei mäleta kas õigused läksid paika v mitte

Node (Wings) loomine🔗

Selle loomise ajal saad basic conf-i mida tahetakse, et sisestad, aga sellest ei piisa
Ilmselt sellepärast, et Wings ei ole tegelt üleni docker peale kolitud, tegelevad alles sellega
Lingis soovitab mees lisada docker > network osa eraldi ja noh, ilma selleta ei hakkaks asi töölegi tegelt

Network osa lisa
docker:
  network:
    interface: 172.50.0.1
    dns:
      - 192.168.1.1 # Replace with your default gateway if different
      - 1.0.0.1
    name: wings1
    ispn: false
    driver: bridge
    network_mode: wings1
    is_internal: false
    enable_icc: true
    network_mtu: 1500
    interfaces:
      v4:
        subnet: 172.50.0.0/16
        gateway: 172.50.0.1
      v6:
        subnet: fdba:17c8:6c94::/64
        gateway: fdba:17c8:6c94::1011
allowed_mounts: []
allowed_origins: []
allow_cors_private_network: false
ignore_panel_config_updates: false
Ligipääs🔗

External ligipääs peamiselt läbi Cloudflared tunneli, pidi eraldi conf faili juurde lisama info, et mc.timmo.ee läheb tcp://ip:port
Backup läbi PlayitGG teenuse, CF on parem kuna ping on 2x - 3x madalam