Lokální vývoj na macOS a Windows
Návod pro toho, kdo chce Shipard rozjet na vlastním počítači a Linux server nikdy nespravoval. Na konci máš běžící Shipard a v prohlížeči jeho vývojářský dashboard.
Shipard běží na Ubuntu. Na Macu ho proto spustíš ve virtuálním stroji
(Multipass), na Windows ve WSL — v obou případech je to Ubuntu uvnitř
tvého počítače. Instalaci udělá jeden skript,
scripts/dev-bootstrap.sh.
Máš linuxový server, nebo Ubuntu přímo v počítači? Tenhle návod nepotřebuješ — postup pro Linux je v
linux-install.md. Bootstrap jen spouští jeho kroky za sebou.
1. Co budeš potřebovat
- Mac (Apple silicon i Intel), nebo Windows 10 (verze 21H2 a novější) či Windows 11
- asi 20 GB místa na disku a 4 GB paměti pro Ubuntu
- připojení k internetu — instalace stahuje balíčky a chvíli trvá
- účet na GitHubu jen tehdy, když chceš přispívat; na vyzkoušení potřeba není
Zdrojový kód žije uvnitř Ubuntu v adresáři ~/sw/shpd, ne na disku Macu
nebo Windows. Soubory sdílené z hostitele jsou pomalé a rozbíjejí práva,
na kterých instalace stojí.
2. macOS — Multipass
1. Nainstaluj Multipass podle oficiální stránky.
2. Stáhni konfiguraci — v aplikaci Terminál:
curl -fsSLO https://raw.githubusercontent.com/shipard/shipard/stable/scripts/multipass/shipard-dev.yaml
3. Vlož svůj veřejný SSH klíč (jen když chceš napojit Clauda v chatu —
kapitola 5; jinak krok přeskoč). Klíč pro vývojový stroj vytvoř zvlášť
a na dotaz na heslo (passphrase) jen stiskni Enter — remote-dev-bridge
klíč s heslem neumí:
ssh-keygen -t ed25519 -f ~/.ssh/shipard_dev
Pokud klíč ~/.ssh/shipard_dev už máš, ssh-keygen se zeptá na přepsání —
odpověz n, stávající klíč stačí.
Pak klíč vlož do shipard-dev.yaml — tenhle příkaz nahradí zástupný řádek
obsahem veřejného klíče a druhý výsledek vypíše:
sed -i '' "s|ssh-ed25519 AAAA_NAHRAD_TENTO_RADEK_SVYM_VEREJNYM_KLICEM|$(cat ~/.ssh/shipard_dev.pub)|" shipard-dev.yaml
grep -A1 'ssh_authorized_keys:' shipard-dev.yaml
Pod ssh_authorized_keys: má být - ssh-ed25519 AAAA… s tvým klíčem, ne
zástupný text AAAA_NAHRAD_….
Když chceš soubor upravit ručně: open -e shipard-dev.yaml (TextEdit).
Na řádku - ssh-ed25519 AAAA_NAHRAD_TENTO_RADEK_SVYM_VEREJNYM_KLICEM nahraď
všechno za pomlčkou obsahem souboru ~/.ssh/shipard_dev.pub; pomlčku
a odsazení nech. Vkládá se vždy soubor .pub — soubor bez přípony je
soukromý klíč a nikam se nekopíruje.
4. Spusť virtuální stroj:
multipass launch 26.04 --name shipard --cpus 2 --memory 4G --disk 20G \
--timeout 1800 --cloud-init shipard-dev.yaml
Příkaz čeká, dokud instalace uvnitř nedoběhne. Volba --timeout je potřeba:
instalace trvá déle než výchozích 5 minut, po kterých by Multipass ohlásil
chybu, přestože stroj dál pracuje.
Síť nech výchozí. Nepřidávej
--networkani--bridged. Vývojářský dashboard nemá přihlášení — ve výchozí síti Multipassu je dostupný jen z tvého počítače, v místní síti by ho viděl kdokoli.
5. Sleduj průběh — v druhém okně Terminálu:
multipass exec shipard -- tail -f shipard-bootstrap.log
Hotovo je, když výpis skončí souhrnem
==> Hotovo — vývojové prostředí Shipardu běží. s adresou dashboardu
(Ctrl+C sledování ukončí). Totéž řekne
multipass exec shipard -- cloud-init status --wait — vypíše status: done.
6. Otevři dashboard. Adresu stroje ukáže řádek IPv4:
multipass info shipard
V prohlížeči otevři http://<IPv4>/_dev/.
Příkazy, které se budou hodit:
| Příkaz | K čemu |
|---|---|
multipass shell shipard |
terminál uvnitř Ubuntu |
multipass stop shipard / multipass start shipard |
vypnutí a zapnutí stroje |
multipass info shipard |
stav a adresa (po restartu ji ověř, může se změnit) |
multipass delete --purge shipard |
smazání stroje včetně dat |
3. Windows — WSL
1. Nainstaluj Ubuntu. Otevři PowerShell jako správce:
wsl --install Ubuntu-26.04
Když si instalace řekne o restart Windows, restartuj; kdyby se pak Ubuntu
neotevřelo samo, spusť příkaz znovu. Dostupné distribuce vypíše
wsl --list --online.
2. První spuštění. Ubuntu se zeptá na jméno a heslo nového uživatele.
Heslo si zapamatuj — bude ho chtít sudo.
3. Spusť bootstrap — v okně Ubuntu:
curl -fsSL https://raw.githubusercontent.com/shipard/shipard/stable/scripts/dev-bootstrap.sh | bash
Skript se na začátku jednou zeptá na heslo a pak běží sám. Skončí souhrnem
==> Hotovo — vývojové prostředí Shipardu běží.
Kdyby Ubuntu hlásilo curl: command not found, doinstaluj ho
(sudo apt update && sudo apt install -y curl) a příkaz zopakuj.
4. Otevři dashboard v prohlížeči ve Windows: http://localhost/_dev/.
5. Volitelně: SSH pro Clauda v chatu (kapitola 5). Klíč vytvoř ve Windows — v PowerShellu, na dotaz na heslo (passphrase) jen stiskni Enter:
ssh-keygen -t ed25519
Pak v okně Ubuntu spusť bootstrap znovu s volbou --with-ssh (místo
<uživatel> dosaď své jméno ve Windows):
bash ~/sw/shpd/scripts/dev-bootstrap.sh --with-ssh \
--ssh-pubkey-file /mnt/c/Users/<uživatel>/.ssh/id_ed25519.pub
SSH pak naslouchá na portu 2222 a pustí jen držitele klíče, heslem se
přihlásit nedá. Obojí jde i najednou při první instalaci:
curl -fsSL … | bash -s -- --with-ssh --ssh-pubkey-file ….
Na co si dát pozor:
- Checkout nech v Ubuntu (
~/sw/shpd), nikdy v/mnt/c/…. - Při práci nech okno Ubuntu otevřené. WSL může distribuci bez otevřeného terminálu po chvíli zastavit — dashboard i SSH pak přestanou odpovídat, dokud Ubuntu znovu neotevřeš.
- Bootstrap potřebuje WSL 2 se systemd. Nové instalace Ubuntu ho mají zapnutý; když skript hlásí, že systemd neběží, napíše i co nastavit.
4. První zdroj dat
Zdroj dat je jedna firma — vlastní databáze a soubory. Založíš ho
v dashboardu tlačítkem + New DS; zaškrtni Seed test data, ať máš
rovnou s čím pracovat. Kroky jednotlivě a co dělat dál:
dev-daily.md (oddíl 2).
5. Napojení na Clauda
V projektu se pracuje s AI asistentem ve dvou rolích — popisuje je
ai-workflow.md.
Claude Code běží přímo uvnitř Ubuntu, v adresáři ~/sw/shpd. Na běžnou
práci (implementace, testy) stačí on. Bootstrap ho neinstaluje — instalace,
přihlášení a první kroky jsou v claude-code-intro.md.
Claude v chatu (návrh, zadání, ověřování) se k Ubuntu připojuje přes SSH
aplikací remote-dev-bridge
na tvém počítači — instalace a napojení do desktopové aplikace Claude
v ai-workflow.md §7.
V nastavení mostu přidej server a projekt s ID shipard:
| Multipass | WSL | |
|---|---|---|
| host | adresa z multipass info shipard |
localhost |
| port | 22 |
2222 |
| uživatel | ubuntu |
tvůj uživatel v Ubuntu |
| klíč | soukromý klíč k tomu, který jsi vložil do shipard-dev.yaml |
soukromý klíč z Windows (C:\Users\<uživatel>\.ssh\id_ed25519) |
| root projektu | /home/ubuntu/sw/shpd |
/home/<uživatel>/sw/shpd |
Na konci bootstrapu s --with-ssh jsou tyhle údaje vypsané v souhrnu.
Po uložení se zeptej Clauda v chatu na hostname stroje — ověříš tím, že
projekt míří na správný stroj.
Na macOS použij podepsané vydání ze stránky Releases. Vlastní nepodepsaný build končí chybou „No route to host“ — macOS mu nedá oprávnění Místní síť, bez kterého se k virtuálnímu stroji nedostane.
6. Každodenní práce
Terminál v Ubuntu: na Macu multipass shell shipard, ve Windows okno Ubuntu.
Kód je v ~/sw/shpd.
Co dělat po git pull, kdy spustit ds-upgrade-all a kde je přehled
příkazů, říká dev-daily.md — stejně pro Multipass, WSL
i Linux server. Bootstrap zapnul git hooky, takže se závislosti a frontend
po git pull aktualizují samy.
Bootstrap jde kdykoli spustit znovu — hotové kroky jen ověří. Stejně se doplní volitelné části:
| Volba | Co přidá |
|---|---|
--with-render |
PDF rendering službu (tisky dokladů) — viz operations/render-service.md |
--with-ssh |
SSH server na portu 2222, přihlášení jen klíčem |
--ssh-pubkey-file <cesta> |
veřejný klíč, který se smí přes SSH přihlásit |
--branch <větev> |
větev pro nový checkout (výchozí stable) |
--dir <cesta> |
adresář checkoutu (výchozí ~/sw/shpd) |
bash ~/sw/shpd/scripts/dev-bootstrap.sh --with-render
Checkout je stažený přes HTTPS. Až budeš chtít posílat změny, přepni ho
podle dev-daily.md (oddíl 5).
AI na lokální instalaci
K vytěžení dokladu z Dashboardu i k asistentovi stačí klíč AI backendu — žádný další runtime ani démon. Z adresáře zdroje dat:
cd /opt/shipard/data-sources/<id>
shpd-ds ai-backend-set-key --backend default # klíč zadáš skrytě na výzvu
Pak nahraj doklad (PDF, obrázek účtenky) na Dashboardu. Analýza běží jako
odpojený proces shpd-ds mail-analyze a zhruba do minuty je výsledek
v detailu zprávy; víc dokladů naráz odbaví týž proces postupně (po
dokončení zprávy bere další z fronty), cron k tomu není potřeba. Běhy
s tokeny, cenou a trváním vidíš v tabu Analýzy. Bez klíče zpráva
zůstane „Ve frontě“ — runner zapíše jedno varování do analysis.log
a skončí; na stroji s cronem se varování sweepu opakuje každou minutu.
Limit souběhu a vypnutí (ai.analysis.maxConcurrent) popisuje
operations/production.md §10.
7. Něco nefunguje?
Bootstrap skončil chybou. Poslední řádky říkají, ve kterém kroku
(==> Bootstrap selhal v kroku: …), nad nimi je příčina. Na Macu je výpis
v souboru:
multipass exec shipard -- tail -n 50 shipard-bootstrap.log
Po odstranění příčiny spusť bootstrap znovu — v terminálu uvnitř Ubuntu
bash ~/sw/shpd/scripts/dev-bootstrap.sh, a když checkout ještě neexistuje,
příkazem curl … | bash z kapitoly 3 (krok 3).
multipass launch hlásí „timed out“. Stroj běží a instalace pokračuje —
sleduj ji podle kroku 5 v kapitole 2.
Dashboard se neotevře. Na Macu ověř adresu a stav stroje
(multipass info shipard), ve Windows měj otevřené okno Ubuntu.
Aplikace hlásí chybu, nebo to pořád nejde? Zdravotní kontrola
shpd-server doctor, oprava práv, logy a kam se obrátit —
dev-daily.md (oddíl 7). K hlášení
o bootstrapu přilož poslední řádky jeho výpisu.