CapRover
ãµãŒãã€ã³ã¹ããŒã«å PaaS CapRover ã«ã€ããŠãŸãšããŠããŸãã
ç®æ¬¡
å ¬åŒã»é¢é£ãµã€ã
- Â CapRover
- Â GitHub caprover
- Â Slack
ç¹åŸŽ
CapRover ã«ã¯æ¬¡ã®ç¹åŸŽããããŸãã
-  Docker ã¬ãã«ã§ã¢ããªãæ§ç¯ã§ããŸãã
Docker ããµããŒãããæ§ã ãªç°å¢ãçŽ æ©ããããã€ã§ããŸãã -  One-click apps ãçšããŠæ§ã ãªã¢ããªãç°¡åã«æ§ç¯ã§ããŸãã
- ð Let’s Encrypt ãçšãã SSL èšŒææžãçºè¡ã HTTPS ã«èšå®ã§ããŸãã
åžžæ SSL åãå¯èœã§ããïŒãã㊠HTTP ã¢ã¯ã»ã¹ã«ããäºãã§ããŸãïŒ -  CLI ãã
caprover deploy
ã§ãããã€ãããã
ãŸã webhook ãèšå®ããŠgit push
ããã ãã§ç°¡åã«ãããã€ã§ããŸãã
CapRover ã® Apps ããŒãžå ã§ãããã€ãã®ãããã€ææ®µãååšãã
Web ãã©ãŠã¶ã®ã¿ã§ãããã€ãå®çµãããäºãã§ããŸãã - Web ãã©ãŠã¶äžã§ã¢ããªç®¡çã»æäœãè¡ããŸãã
- nginx ã«æ
£ããŠããå Žåãnginx ã®èšå®ã倿Žããäºã§ã
ãã现ããã«ã¹ã¿ãã€ãºãå¯èœã§ãã - è€æ°ã€ã³ã¹ã¿ã³ã¹ã®ç«ã¡äžããè€æ°ãµãŒãåäœïŒã¯ã©ã¹ã¿ãŒïŒã察å¿ãã
ã¢ã¯ã»ã¹å¢å€§ã«ã察å¿ããŸãã
ã€ã³ã¹ããŒã«ã»åæèšå®
 Getting Started  CapRover Setup
ãµãŒããžã®ã€ã³ã¹ããŒã«
å
¬åŒãµã€ãã§ç޹ä»ãããŠãã Digital Ocean ã¯
Droplet ãçšæãããŠããŠãçŽ æ©ã䜿çšã§ããŸããã
æ¥æ¬ã«èšçœ®ãããŠããªããããã¬ã¹ãã³ã¹ãé
ããŸãã
ãŸãšãã«äœ¿çšãããªããæ±äº¬ãªã©ã«èšçœ®ãããŠãã
ã¯ã©ãŠããµãŒãã¹ã®ä»®æ³ãã·ã³ã VPS ã䜿çšããã®ãç¡é£ã§ãããã
CapRover ãã®ãã®ã¯ ARM ããã»ããµã§ãåäœããŸããã
 One-click apps 㯠AMD64ã»x64 éå®ã®å ŽåããããŸãã
 Minimum size for Digital Ocean Droplet #28 | GitHub caprover/caprover Issues
ã¡ã¢ãªã¯æäœã§ã 1GB å¿
èŠã§ãã
ã¡ã¢ãªã 1GB ã«æºããªãå Žåãåäœã«åé¡ãçºçããäºãããã£ãŠããŸãã
倧ããªãµã€ãºã®ã¢ããªãåäœãããå Žåãã¡ã¢ãªäžè¶³ã«ãªãããã
ããçšåºŠ swap ãã¡ã€ã«ãäœæããŠããã®ãè¯ãã§ãã
Docker ãã€ã³ã¹ããŒã«åŸã次ã®ã³ãã³ãã§ã€ã³ã¹ããŒã«ããŸãã
sudo docker run -p 80:80 -p 443:443 -p 3000:3000 -v /var/run/docker.sock:/var/run/docker.sock -v /captain:/captain caprover/caprover
 Firewall & Port Forwarding | CapRover Docs
CapRover ã¯æ¬¡ã®ããŒãã䜿çšããŸãã
ãã¡ã€ã¢ãŠã©ãŒã«ã䜿çšããå Žåããã®ããŒãã®éä¿¡ãèš±å¯ããŠäžããã
- TCP - 2377ã»4789ã»7946ã»80ã»443ã»996ã»3000
- UDP - 2377ã»4789ã»7946
ãã®ä»å¿
èŠã«å¿ããŠããŒãã®éæŸãå¿
èŠã§ãã
äŸãã° sshïŒSFTP ãå«ãïŒã®ããŒãã¯éããå¿
èŠãããã§ãããã
ssh ã¯éåžžããŒã 22 ã䜿çšããŸãããæªè³ªç®çã®æ¥ç¶ãçºçããããã
ããŒãžéå¶è
ã¯å¿
ãããŒãçªå·ã倿ŽããŠããŸãã
ç¬èªãã¡ã€ã³ã®å²ãåœãŠ
example.net.eu.org
ãèšå®ããå Žåãcaptain.example.net.eu.org
ã CapRover ã® Web ãåç
§ããã¢ãã¬ã¹ã
ãŸã ã¢ããªå.example.net.eu.org
ã§ããã©ã«ãã®ã¢ããªåãå²ãåœãŠãŸãã
ãããã£ãŠ example.net.eu.org
ããã³ *.example.net.eu.org
ã§
該åœã®ãµãŒããåç
§ã§ããããã« ð ããŒã ãµãŒã ãã
Aã»AAAA ãŸã㯠CNAME ã§èšå®ããŸãã
ïŒãã®å²ãåœãŠããã¡ã€ã³åã ã«ãŒããã¡ã€ã³ ãšè¡šçŸããŸãïŒ
ãªããã»ãã¥ãªãã£çãªèæ
®ã§ãexample.com
ã§å²ãåœãŠãããã¯ã
ãµããã¡ã€ã³ãäŸãã° sub.example.com
ããã³ *.sub.example.com
ãšããŠ
CapRover ã®æåšãç°¡åã«ããããªãããã«ããæ¹ãè¯ãã§ãã
äžè¬å
¬éããå Žåã¯ç¬èªãã¡ã€ã³ãå²ãåœãŠãããã«ããŸãã
CLI ã®ã€ã³ã¹ããŒã«
Node.js ãã€ã³ã¹ããŒã«åŸãnpm ã§ã€ã³ã¹ããŒã«ããŸãã
npm install -g caprover
caprover
ã³ãã³ãã䜿ããããã«ãªããŸããæ¬¡ã®ã³ãã³ãïœå®è¡ããŸãã
caprover serversetup
次ã®é ç®ãå ¥åããŠãããŸãã
- root domain - CapRover ã§äœ¿çšãã  ã«ãŒããã¡ã€ã³
- password - CapRover ãžãã°ã€ã³ããæã®ãã¹ã¯ãŒã
- email address - ð Let’s Encrypt ã®çºè¡æã«äœ¿çš
- machine name - è€æ°ã® CapRover ãããæã«å€å¥ã§ããä»»æã®åå
SSL èšŒææžãçºè¡ãããã®ã§ããã®æ®µéã§ã«ãŒããã¡ã€ã³ã¯
ãµãŒããåç
§ã§ããé€éã«ããŠãããŠäžããã
ããã§ https://captain.ã«ãŒããã¡ã€ã³/
ã§ãã°ã€ã³ã§ããããã«ãªããŸãã
ãŸãããããŸã§ã®æ¹æ³ã䜿çšãããhttp://ã«ãŒããã¡ã€ã³:3000/
ã§ Web ããã»ããã¢ããããæ¹æ³ããããŸãã
äŸãã°ããŒã«ã«äœ¿çšã®ããã« SSL èšŒææžãçºè¡ããããªãå Žåã«æå¹ã§ãã
è€æ°ç°å¢ã§äœ¿çšããå Žåã2 å°ç®ããã¯æ¬¡ã®ã³ãã³ãã䜿çšããŸãã
caprover login
ã¢ããªã®äœæ
 Deployment Methods | CapRover Docs
CapRover ãžãã°ã€ã³ããåŸ Apps ãåç
§ããŸããã
ã¢ããªãå
šããªãã®ã§ããŸãã¯ã¢ããªãäœæããŠã¿ãäºã«ãªããŸãã
ã¢ããªåïŒApp NameïŒã¯ è±å°æå ããã³ - ã䜿çšã§ããŸããæ°åã¯äœ¿çšã§ããŸããã
ãã®ã¢ããªå㯠CLI ããã®ãããã€ã§äœ¿çšããŸãã
One-click apps
æ§ã ãªã¢ããªãç°¡åã«æ§ç¯ã§ããŸããæ¬¡ã®ãšããã§äžèŠ§è¡šç€ºã§ããŸãã
 Caprover one-click apps browser
MariaDBã»MySQLã»PostgreSQL ãªã©ã®ããŒã¿ããŒã¹ãJoomla!ã»WordPress 以å€ã«ã
次ã®ãããªã¢ããªãååšããŠããŸãã
è€éãªã€ã³ã¹ããŒã«ãå¿
èŠãšããã容æã«å°å
¥ã§ããŸãã
å€ã㯠Web ãã©ãŠã¶ã§åäœããŸããChrome OS ã§ã䜿çšã§ããŸãã
ãŸã VPS ãªã©ã«å
¥ããŠããã°ãå€åºå
ã§ã䜿çšã§ããŸãã
ïŒCapRover ã¯ã¢ããªãšã¯å¥ã« BASIC èªèšŒãèšå®ã§ããŸãïŒ
- Ackeeã»Countlyã»Matomoã»Plausibleã»umami - ãµã€ãåæã»ã¢ããªãã£ã¯ã¹
- AdGrard Home - åºåãªã©ã®ãããã¯
- ArchiveBox - Web ã®å±¥æŽå
- Cachet - ã¹ããŒã¿ã¹ããŒãžã®äœæ
- Cheveretoã»Thumbor - ãªã³ã©ã€ã³ç»ååŠç
- Cloudflare DDNS - ð Cloudflare ã® ð ããŒã ãµãŒã ã«èšå®ãããŠãã IP ã¢ãã¬ã¹ãæŽæ°
- CodiMDã»Raneto - ããã¥ã¡ã³ãããŒãžã®äœæ
- code-server by Coder - VS Code ããã©ãŠã¶ãã䜿çšå¯èœ
- Commentoã»Coral Talk - ã³ã¡ã³ãéçšã»ç®¡ç
- Discourse - ãã©ãŒã©ã ã»æ²ç€ºæ¿
- Duplicatiã»ElkarBackup - ãã¡ã€ã«ããã¯ã¢ãã
- Elasticsearchã»MeiliSearchã»SearXNG - æ€çŽ¢ãšã³ãžã³
- Etherpad - å ±çšãšãã£ã¿ãGoogle ãã©ã€ãã®ä»£ãã
- filebrowserã»FileRunã»Nextcloudã»ProjectSend - ãã¡ã€ã«ç®¡ç
- Filestashã»FileZilla - ãã©ãŠã¶äžã§ãã¡ã€ã«è»¢é
- Firefox - Web ãã©ãŠã¶äžã§ Firefox
- GitLabã»gitea - GitHub ãªã©ã®ä»£ãã
- Guacamole - VNCã»RDPã»SSH ã¯ã©ã€ã¢ã³ã
- Heimdallã»Shiori - ãªã³ã¯éã»ã¹ã¿ãŒãããŒãž
- invidious - YouTube ãªã©ã®ä»£ãã
- iRedMailã»Poste.io - ã¡ãŒã«ãµãŒã
- Jitsi Meet - ãªã³ã©ã€ã³äŒè°ã·ã¹ãã
- Joplin - ãªã³ã©ã€ã³ã¡ã¢åž³ã»TODO
- Kutt - ççž® URLãbit.ly ãªã©ã®ä»£ãã
- Lycheeã»PhotoPrismã»Photoview - åç管çã»å ±æ
- Miniflux - RSS ãµãŒã
- MinIO - S3 ã¹ãã¬ãŒãžãµãŒã
- Nginx Redirectã»Nginx Reverse Proxy - 転éã»ãããã·ãçŽ æ©ãæ§ç¯å¯èœ
- Oh My Form - ãã©ãŒã ã®äœæã»è¡šç€ºãGoogle ãã©ãŒã ãªã©ã®ä»£ãã
- ONLYOFFICE Document Server - ãªãã£ã¹ïŒã¯ãŒããã»è¡šèšç®ã»ãã¬ãŒã³ãªã©ïŒ
- PrivateBin - pastebinã»GitHub Gist ã®ä»£ãã
- RainLoop - Web ã¡ãŒã«ã»ã¡ãŒã«ã¯ã©ã€ã¢ã³ã
- Rocket.Chat - ãã£ããã·ã¹ãã ãSlack ã®ä»£ãã
- Statpingã»Uptime Kuma - Web çã®ç£èŠãUptime Robot ã®ä»£ãã
- Syncthing - Dropbox ãªã©ã¯ã©ãŠããµãŒãã¹ã®ä»£ãã
- The Lounge - IRC ã¯ã©ã€ã¢ã³ã
- Tiddlywiki - ð TiddlywikiãDocker åäœã§ãµãŒãä¿å察å¿
- Yagpdb - Discord Bot
ç¬èªã«ã¢ããªãæ§ç¯ãã
 Captain Definition File | CapRover Docs
ã¢ããªã®ãããžã§ã¯ããšã㊠captain-definition
ãã¡ã€ã«ãæäœéå¿
èŠã§ãã
ãã㯠CapRover ã§ã®ãããã€æé ã瀺ããŸãã
次ã®èšå®ã§åãå Žæã«ãã Dockerfile
ãå®è¡ããŸãã
{
"schemaVersion": 2,
"dockerfilePath": "./Dockerfile"
}
Dockerfile
ã«å
¥ããå
容ã captain-definition
ã«å«ããäºãã§ããŸãã
{
"schemaVersion": 2,
"dockerfileLines": [
"FROM caddy:alpine",
"COPY ./Caddyfile /etc/caddy/Caddyfile"
]
}
ããã§ã¯ç°¡åãªäŸãšã㊠Web ãµãŒãã§éçãã¡ã€ã«ã衚瀺ããã¢ããªã§ãã
ð fu-sen/CapRover-Apache | GitHub
ð fu-sen/CapRover-Caddy | GitHub
ð fu-sen/CapRover-nginx | GitHub
ãŸã PHP å ¬åŒ Docker ã« Apache ãå«ãããã®ãããã®ã§ããããçšããã¢ããªäŸã§ãã
ð CapRover-PHP-Apache | GitHub
ã¯ããŒã³ããåŸããã®å Žæã§ caprover deploy
ãšããŠäžããã
ããã§ã¢ããªã®éžæâCapRover ã®ãã¹ã¯ãŒãå
¥åâãããã€ãšãªããŸãã
ð Dockerfile for Web services | ð BALLOON | FU-SEN
ãã¡ãã« Dockerfile
ã®ç°¡åãªäŸã玹ä»ããŠããŸãã
Docker Hub ããã¢ããªæ§ç¯ãã
Docker Hub ããããã€ããŠãã®ãŸãŸäœ¿çšã§ããå Žåã
CapRover ã® Apps ããã¢ããªåãå
¥åããŠäœæããåŸã
ãã®ã¢ããªã®äžã«ãã Deployment ãã Method 6: Deploy via ImageName ã§
Docker Hub ã®ã€ã¡ãŒãžåãå
¥ããŠãããã€ã§ããŸãã
ä¿®æ£ãå¿
èŠãªå Žå㯠Dockerfile
ã captain-definition
ã®é
ç®ãããã
.tar ã§ 1 ãã¡ã€ã«ããè€æ°ãã¡ã€ã«ã®æ§æããã©ãã¯ïŒããããã§ããŸãã
Web äžã§ãããã€ãå®çµããäºãã§ããŸãã
Git ãããžã§ã¯ãããã¢ããªæ§ç¯ãã
ã¢ããªå
Deployment ã®ãMethod 3: Deploy from Github/Bitbucket/Gitlabãã§
å¿
èŠäºé
ãå
¥åãããšãwebhook ã® URL ã衚瀺ãããŸãã
Two-factor authenticationïŒ2 èŠçŽ èªèšŒïŒãçšããŠããå Žåã¯ã
Password ã®ãšããã§ Personal access tokens ãçºè¡ããå
¥åããŠäžããã
ïŒã¢ã«ãŠã³ãã® Setting - Developer settings - Personal access tokens (classic)ïŒ
GitHub ã®å ŽåãSetting - Webhook ãããã® URL ãå
¥ããŠäžããã
 Build, Test and Deploy from GitHub | CapRover
ããäžã€ã®æ¹æ³ãšããŠãGitHub Actions ãçšããŠãããã€ããæ¹æ³ãå ¬éãããŠããŸãã
 caprover/deploy-from-github | GitHub
ãã®ããã®å
¬åŒ GitHub Actions ãå
¬éãããŠããŸãã
ãã¡ãã䜿çšãããš Commit éšåã« GitHub åŽã®ãããã€ç¶æ³ã衚瀺ãããŸãã
å
±ã«èšå®ããåŸãgit push
ãè¡ã£ãŠããããã€ãå®è¡ãããäºã確èªããŠäžããã
Persistent Apps
 Persistent Apps | CapRover Docs
caprover deploy
ã³ãã³ãã¯éåžžäžèº«ãæ¹æ¶ããŠãããã€ãããªãããŸããã
Persistent ãæå¹ã«ãããšããããã€ã§æ¹æ¶ãããã«ãã¡ã€ã«é åãæ®ããŸãã
Websocket support
äŸãã°ãã¹ã¯ãããã衚瀺ãã Docker ã€ã¡ãŒãžã®å Žåã
衚瀺ããåŸã«ã宿çãªéåãçºçããŸãã
ãã®ãããªã€ã¡ãŒãžã䜿çšããå Žå㯠HTTP Settings ã«ãã
Websocker support ã æå¹ ã«ããŠäžããã
ç¬èªãã¡ã€ã³ãå²ãåœãŠã
äŸãã°ã«ãŒããã¡ã€ã³ã example.net.eu.org
ãšããå Žåã
ã¢ããªã远å ãããš ã¢ããªå.example.net.eu.org
ãšãªããŸãã
ãã以å€ã®ç¬èªãã¡ã€ã³ã䜿çšãããå Žå㯠HTTP Setting å
ã§èšå®ã§ãã
ãã¡ã€ã³æ¯ã« HTTPS ãæå¹åã§ããŸãã
CapRover ã¯ãã¡ã€ã³è¿œå æã« IP ã¢ãã¬ã¹ãåããŠãããã確èªããŸãã®ã§ã
CapRover ãžè¿œå ããåã« ð ããŒã ãµãŒã ã§èšå®ããŠäžããã
äŸãã° ð Cloudflare ãžç¬èªãã¡ã€ã³ãç»é²ããŠããå Žåã
DNS ã§ãProxiedããæå¹ã«ããŠãããšãCloudflare ã®ãµãŒãã§è¿ããããç»é²ã§ããŸããã
DNS ã®èšå®ã§ DNS Only ã«ããŠãã CapRover ã§ç»é²ãè¡ã£ãŠäžããã
ãµããã¡ã€ã³ã䜿çšããªãïŒããã§ã¯äŸãšã㊠example.net.eu.org
ïŒå Žåã
ãã®æ¹æ³ã§è¿œå ããŠåç
§ã§ããããã«ãªããŸãã
IP ã¢ãã¬ã¹ã®èæ ®
CapRover ãã€ã³ã¹ããŒã«ãããµãŒãã§ã¯ã
IP ã¢ãã¬ã¹ã§åç
§ããå Žåã§ã CapRover åºæã®è¡šç€ºã«ãªããŸãã
ãããå¬ãããªãå Žåã¯ãä»»æã®ã¢ããªãäœæãã
ç¬èªãã¡ã€ã³ãšã㊠IP ã¢ãã¬ã¹ã远å ããŠã
IP ã¢ãã¬ã¹ãåç
§ããæã®ç¹å®åäœãã¢ããªã§å¯ŸåŠããäºãã§ããŸãã
ð fu-sen/CapRover-ip | GitHub
ãã®ãããžã§ã¯ãã caprover deploy
ãã
ãã®ã¢ããªã®ç¬èªãã¡ã€ã³ã« IP ã¢ãã¬ã¹ã远å ããŸãã
https ã¯æå¹åããªãã§äžããã
ïŒð Let’s Encrypt 㯠IP ã¢ãã¬ã¹ã§èšŒææžãçºè¡ããŸããïŒ
ããã«ãããhttp ã§åç
§ããæã¯æåã®ãªãç»é¢ã
https ã§åç
§ããæã¯ãšã©ãŒã«ãªããŸãã
CapRover ã® Web æäœ
Dashboard
éåžžã¯æäœããŸãããã€ã³ã¹ããŒã«åŸã§ããã䜿çšããã®ã¯
ã«ãŒããã¡ã€ã³ã®å€æŽãš HTTPS ã®èšå®ã®ã¿ã§ãã
ã«ãŒããã¡ã€ã³ã倿Žããå ŽåãCLI ãåæ ããå¿
èŠããããŸããcaprover logout
ã§æ§ãã¡ã€ã³ãéžæããcaprover login
ã§æ°ããã«ãŒããã¡ã€ã³ãçšããŠèšå®ããªãããŠäžããã
Apps
ã¢ããªã®äœæãšèšå®ãè¡ããŸããéåžžã¯æã䜿çšããããã«ãªãã§ãããã
ãYour Appsãã«ããã¢ããªåãã¯ãªãã¯ãããšãåã
ã«æ¬¡ã®æäœãè¡ãªããŸãã
- HTTP Settings - ãã¡ã€ã³ã®èšå®ãHTTPS ã®æå¹åãnginx èšå®ãå éš HTTP ããŒããWebsocketãBASIC èªèšŒ
- App Configs - ç°å¢å€æ°ã远å ããŒãã®èšå®ãã€ã³ã¹ã¿ã³ã¹æ°ããããã€å®è¡åã®ã¹ã¯ãªããããµãŒãã¹ã¢ããããŒãã®äžæžã
- Deployment - ããŒãžã§ã³å±¥æŽãã¢ããªã®ãã°ãåçš®ãããã€
Monitoring
NetData ã®ã¢ãã¿æ©èœãæå¹ã«ããŠãµãŒãã®çšŒåç¶æ³ãåç
§ããäºãã§ããŸãã
ç°åžžæ€ç¥ã®éç¥ãªã©ãèšå®ã§ããŸãã
Cluster
CapRover ãè€æ°å°ã§ã¯ã©ã¹ã¿ãŒéçšããæã®èšå®ã§ãã
Settings
CapRover ã®ããŒãžã§ã³ç¢ºèªãããã¯ã¢ãããnginx èšå®ããã¹ã¯ãŒãã®å€æŽã
ãã£ã¹ã¯å
ã®ç¡é§ãªãã¡ã€ã«ãæ¶å»ãã§ããŸãã
CapRover CLI
 CLI Commands | CapRover Docs
ãããã€
次ã®ãããã€ã³ãã³ã㯠Git ã®ç®¡çã«ãªã£ãŠããæã«æå¹ã§ãã
caprover deploy
Git 管çã«ãªã£ãŠããªãå Žåã.tar ãã¡ã€ã«ã« 1 ãã¡ã€ã«åããŠã
ãããã€ããäºãã§ããŸãã
ãã® deploy.tar
ããCapRover ã® Deployment ãããã©ãã°ïŒããããã§
ãããã€ããäºãã§ããŸãã
tar zcvf deploy.tar .
caprover deploy -t deploy.tar
ããã€ãã®è³ªåãšæäœã»å ¥åãçºçããŸããããªãã·ã§ã³ã§çç¥ã§ããŸãã
caprover deploy -h https://captain.ã«ãŒããã¡ã€ã³.ext -p ãã¹ã¯ãŒã -a ã¢ããªå
ã¢ã㪠㮠Deployment å
ãMethod 1: Official CLIãã« Enable App Token ããããŸãã
ããŒã¯ã³ãçºè¡ãããšãã¹ã¯ãŒãã®ä»£ããã« --appToken ããŒã¯ã³
ã䜿çšã§ããŸãã
Q&A
Dokku ãšã®éãã¯ãªãã§ããïŒ
æ¥æ¬ã§ã¯ãµãŒãã€ã³ã¹ããŒã«å PAAS ãšã㊠Dokku ã®æ¯æãå€ããªã£ãŠããŸããã
å¿
ã Git 管çã«ããŠãgit push
ãããåæã§ãã
CapRover 㯠Git 管çãå¿
é ã«ãªã£ãŠããŸããã
代ããã« .tar ã§ãããžã§ã¯ãã 1 ãã¡ã€ã«åããcaprover deploy -t ãã¡ã€ã«å
ã䜿çšãããã
.tar ãã¡ã€ã«ã Web äžã§ãã©ãã°ïŒããããããŠãããã€ããäºãã§ããŸãã
ãŸã Dockerfile
ãçšæããããDocker Hub ã«ååšããã€ã¡ãŒãžã¯
ããããæå®ããŠæ§ç¯ãè¡ãäºãå¯èœã«ãªã£ãŠããŸãã
Google Cloud RunãFlyãRailway ã®ãããªäœ¿ãæ¹ãã§ããã®ã§ããããïŒ
 Google Cloud Run
 Fly (fly.io)
 Railway
ã¯ãããã®èªèã§æ£ããã§ãããããä»»æã®ãµãŒãïŒVPS ãªã©ïŒã§å®çŸã§ããŸãã
ãã¡ã€ã«ã¬ãã«ã§ã®éã㯠captain-definition
ãã¡ã€ã«ãå¿
èŠãšããç¹ã§ãã
ä»ã® PaaS ã§ã¯ Dockerfile
ãååšããŠããã®ãéåžžãªã®ã§ã
æäœã§ã次㮠captain-definition
ãã¡ã€ã«ãçæããã ãã§åäœããã§ãããã
{
"schemaVersion": 2,
"dockerfilePath": "./Dockerfile"
}
Git 管çãããŠããªãå Žå㯠caprover deploy
ã ãã§ã¯ãããã€ã§ããã
.tar ã§ 1 ãã¡ã€ã«åããå¿
èŠããããŸãã
ã«ãŒããã¡ã€ã³ã倿Žã§ããŸããïŒ
CapRover ãžãã°ã€ã³ããåŸãDashboard ã®äžã«ãã
Change Root Domain Anyways ããã«ãŒããã¡ã€ã³ã倿Žã§ããŸãã
倿Žããã«ãŒããã¡ã€ã³ã example.net.eu.org
ãšããå Žåãexample.net.eu.org
ããã³ *.example.net.eu.org
èšå®åã«ãµãŒããåç
§ã§ãããã ð ããŒã ãµãŒã åŽã§èšå®ããŠãããŠäžããã
CapRover Docs ã®ã³ãã³ãããšã©ãŒã«ãªããŸãã
CapRover Docs ã§ã®ã¿ãŒããã«æäœã¯ root ã«ãªã£ãŠããåæã§èšèŒãããŠããŸãã
1 è¡ã®ã³ãã³ãã§ããã°ãã³ãã³ãã®é ã« sudo
ãå
¥ããŠäžããã
ãŸã㯠sudo su -
ã§ root æš©éã«ãªã£ãŠããã³ãã³ããå®è¡ããŠäžããã
ã¢ããªãžã³ã³ãœãŒã«ãã°ã€ã³ã§ããŸããïŒ
CapRover ãéçšãããµãŒããž ssh ãªã©ã§ãã°ã€ã³ããåŸã
次ã®ã³ãã³ãã§ã³ã³ãœãŒã«ãžå
¥ããŸãã
sudo docker exec -it $(sudo docker ps --filter name=srv-captain--ã¢ããªå -q) /bin/sh
CapRover ãåäœããªããªããŸããïŒ ã©ãããã°è¯ãã§ããïŒ
 Troubleshooting | CapRover Docs
çµéšäžãæãã±ãŒã¹ãå€ãã®ã¯ãNginx ã®èšå®ã倿Žãã
ãã®æ§æãšã©ãŒã«ãããèµ·åã§ããªããªã£ãŠããç¶æ
ã§ãã
ãã®å Žåã¯æ¬¡ã®ã³ãã³ãã§äžåºŠ Nginx ã®èšå®ãåæç¶æ
ã«æ»ããŠã¿ãŠäžããã
sudo su -
docker service scale captain-captain=0 && \
docker run -it --rm -v /captain:/captain caprover/caprover /bin/bash -c "wget https://raw.githubusercontent.com/caprover/caprover/master/dev-scripts/clear-custom-nginx.js ; node clear-custom-nginx.js ;" && \
docker service scale captain-captain=1 && \
echo "OKAY"
åäœãéããªã£ãŠããŸãããã©ãããã°è¯ãã§ããïŒ
ç¹å®ã®ã¢ããªã§ã¢ã¯ã»ã¹å¢å€§ã«ããåäœãéããªã£ãŠããå Žåã¯ã
ãã®ã¢ããªã«ãã App Configs å
Instance Count ãå¢ãããŠã
åæã«åŠçã§ããã€ã³ã¹ã¿ã³ã¹ãå¢ãããŠã¿ãŸãã
CapRoverã»ãµãŒãå
šäœãéããªã£ãŠããå Žåã¯ããµãŒãã®éçãªã®ã§ã
ãã®å Žåã¯å¥ãµãŒãã§ã¯ã©ã¹ã¿ãŒãäœæããŸãã
CapRover ã® Cluster ãåç
§ããŠäžããã
ã¢ããªãåé€ããŸããããPersistent é åãæ®ã£ãŠããããã§ãã
 Persistent Apps  Removing Persistent Apps | CapRover Apps
誀ã£ãŠåé€ããŠããŸã£ãŠã埩æ§ã§ããããã«
Presistent é å㯠Web ããåé€ããªãããã«ãªã£ãŠããŸãã
ãµãŒããž ssh ãã°ã€ã³ããåŸãsudo docker volume ls
ãšããŠ
察象ã®ã¢ããªããããã確èªããŸãã
ããã° sudo docker volume rm ããªã¥ãŒã å
ã§åé€ããŸãã
ããããªããã°ãPresistent é åãçŽæ¥ãµãŒãå
ã«çæããŠããã®ã§ãsudo rm -r ãã¹
ã§åé€ããŠäžããã