Skip to content

Detailná inštalácia

Táto stránka pokrýva všetky aspekty inštalácie EOS Hub vrátane produkčného nasadenia.

Systémové požiadavky

Minimálne požiadavky

KomponentVerzia
Node.js20+
pnpm9+
PostgreSQL15+
RAM2 GB
Disk1 GB

Odporúčané pre produkciu

KomponentVerzia / Konfigurácia
Node.js22 LTS
PostgreSQL16+ s replikáciou
RAM4 GB+
CPU2+ jadrá

Inštalácia krok za krokom

1. Klonovanie a závislosti

bash
git clone https://github.com/your-org/eos-hub.git
cd eos-hub
pnpm install

2. Nastavenie PostgreSQL

Vytvorte databázu a používateľa:

sql
CREATE USER eos_hub WITH PASSWORD 'bezpecne_heslo';
CREATE DATABASE eos_hub OWNER eos_hub;
GRANT ALL PRIVILEGES ON DATABASE eos_hub TO eos_hub;

Bezpečnosť

V produkčnom prostredí používajte silné, náhodne generované heslá. Nikdy nepoužívajte predvolené hodnoty.

3. Konfigurácia prostredia

bash
cp .env.example .env

Minimálna konfigurácia .env:

env
# Databáza
DATABASE_URL="postgresql://eos_hub:bezpecne_heslo@localhost:5432/eos_hub"

# NextAuth
NEXTAUTH_SECRET="$(openssl rand -base64 32)"
NEXTAUTH_URL="http://localhost:3000"

# Google OAuth (voliteľné)
GOOGLE_CLIENT_ID="vas-google-client-id"
GOOGLE_CLIENT_SECRET="vas-google-client-secret"

Podrobný popis všetkých premenných nájdete v časti Konfigurácia.

4. Migrácia databázy

Pre vývoj:

bash
pnpm db:push

Pre produkciu (s migračnými súbormi):

bash
pnpm db:migrate

5. Seed dáta (voliteľné)

bash
pnpm db:seed

INFO

Seed dáta sú určené len pre vývojové a testovacie prostredie. V produkcii ich nespúšťajte.

Produkčné nasadenie

Build

bash
pnpm build

Spustenie

bash
pnpm start

Aplikácia štartuje na porte 3000. Port môžete zmeniť cez premennú PORT.

Docker

EOS Hub je možné nasadiť aj pomocou Dockeru:

dockerfile
# Príklad Dockerfile
FROM node:22-alpine AS base
RUN corepack enable

FROM base AS deps
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN pnpm install --frozen-lockfile

FROM base AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
RUN pnpm build

FROM base AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
COPY --from=builder /app/public ./public

EXPOSE 3000
CMD ["node", "server.js"]

Reverz proxy (Nginx)

nginx
server {
    listen 80;
    server_name eos-hub.vasa-domena.sk;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

SSL

Pre produkciu vždy používajte HTTPS. Odporúčame Let's Encrypt pre bezplatné SSL certifikáty.

Riešenie problémov

Chyba pripojenia k databáze

Skontrolujte, či PostgreSQL beží a DATABASE_URL je správne nastavené:

bash
psql $DATABASE_URL -c "SELECT 1"

Chyba pri migráciách

Ak migrácia zlyhá, skúste resetovať databázu (len pre vývoj):

bash
pnpm db:reset

Port je obsadený

Zmeňte port pomocou premennej prostredia:

bash
PORT=3001 pnpm dev

Ďalšie kroky

Built with VitePress