ã¯ããã«
Obsidian ã® 1 çªã®åé¡ã¯åæ
ç§ã¯ Apple ãŠãŒã¶ãŒãªã®ã§ iCloud ã§åæãããŠããããiCloud ã ãšåæãéã«åããã« conflict ããéã« merge ããæ©èœããªããŠããŒããå¢ããŠããŸã
åäžã®ããŒããããŒããããŒã 2ãããŒã 3 ã¿ããã«ãªã
Obsidian Sync ã«èª²éããã°ç°¡åã«å šãŠè§£æ±ºããã®ã ããç¡æã§ã Self-hosted LiveSync ãšããã³ãã¥ããã£ãã©ã°ã€ã³ã§è§£æ±ºã§ããã¿ãããªã®ã§å°å ¥ããŠã¿ã

ãµãŒããŒäžã«ããŒã¿ããŒã¹ã管çããã¢ã㪠(coachDB) ãããã〠(æ§ç¯) ããŠããããä»ããŠåæããããããªä»çµã¿ã®æ§å
ãã ãããµãŒããŒäžã«ã¢ããªãäœãã®ã¯èªåã§ãããªããšãããªãã®ã§ããã Self-hosted ãšããããšã ãã
ããŒãã«ã¯é«ããéçºè
æ§ãæé ã announce ããŠãã®ã§ãã®éãã«ããã°è¯ã
ã°ã°ã£ããè²ã
èšäºãåºãŠãããçµå±ãããèªãã ãã§äœãšããªã£ã
Cite
æé ã¯æ¢ã«èª¬æãããŠãããããªãåæç¥èãèŠããã®ã§ããã®ããŒãžã§ã¯çŽ äººã§ãäœãšãªãäœãããŠããããããããã«è§£èª¬ãããŠã¿ã
èšå®ã®å€§ãŸããªæµã
- flyctl ãã€ã³ã¹ããŒã«
- flyctl ã§ã¢ããªã®åæèšå®ãããŠããã〠(æ§ç¯)
- Obsidian ã« Self-hosted LiveSync ãã€ã³ã¹ããŒã«
- Obsidian åŽã®åæèšå®
fly.io ãšãããµãŒãã¹ãçšããŠãµãŒããŒäžã«ã¢ããªãããã〠(æ§ç¯) ãã
ããŒã¿ã®éä¿¡éã«ããåŸé課éå¶ã ããVault ã®åæçšåºŠã®éä¿¡ã§ç¡æåãè¶
ããããšã¯ãŸããªããšã®ããš
ã¯ã¬ãžããã«ãŒãã®ç»é²ãå¿
é ã ããããã¯ã¹ãã 察çãšæžããŠãã
èªåã§ Hobby Plan ã«ç»é²ãã 5ïŒ/month ãšè¡šç€ºãããã®ã§äžèŠææã«èŠããããæåã«äœæããããPersonalããšãã Organization å
ã§ã¢ããªã䜿çšããå Žå㯠5$ åãŸã§ã®äœ¿çšã¯ç¡æ
1. Install the CLI
curl -L https://fly.io/install.sh | sh
ãŸãããã«ã ãã¶åæç¥èãå¿
èŠ
CLI 㯠Command Line Interface ã®ç¥
CUI(Character User Interface) ãšããã
察矩èªã¯ GUI(Graphical User Interface)
Chrome ãšã Line ãšããéãããæäœããããã®ç»é¢ãåºãŠããŸããã
ããããã®ã¯ GUI
å察㫠Mac ãªãã¿ãŒããã«ãWindows ãªã PowerShell ã§ã³ãã³ããæã¡ããã§æäœããã¢ã㪠(ããã±ãŒãžãšåŒã¶) 㯠CLI
ã€ã³ã¹ããŒã«ãã¿ãŒããã«ã PowerShell ã§è¡ã
äŸãšã㊠git ã fish ãæããŠãã
flowchart TD id1[(localPC)] id1 --> Chrome id1 --> Line id1 -->|Terminal/PowerShell|git id1 -->|Terminal/PowerShell|fish subgraph GUI Chrome Line end subgraph CLI git fish end
ãã㯠fly.io ã®ããã±ãŒãžã§ãã flyctl ãã€ã³ã¹ããŒã«ããŠããã®ããã±ãŒãžã®ã³ãã³ãã䜿ã£ãŠãã£ãŠããš
fly.io ã®å ¬åŒãµã€ã
Windows ã®å Žåãšã Homebrew 䜿çšã®å Žåã¯ã¡ãã£ãšç°ãªãã®ã§
å
¬åŒãµã€ãã«åã£ãŠããå°ã解説ãã
Mac ã®å Žå
Homebrew ã䜿çšããŠããå Žåã¯ãã®ã³ãã³ã
brew install flyctl
Homebrew ã¯ããã±ãŒãžç®¡çãœãã
CLI ã®ããã±ãŒãžã£ãŠã©ãã«äœãå
¥ã£ãŠããã®ããåããããã«ããã®ã§ãCLI ãæ¥åžžçã«äœ¿çšããå Žå㯠Mac ãªã HomebrewãWindows ãªã scoop ãªã©ã®ããã±ãŒãžç®¡çãœããã䜿çšãããšäŸ¿å©
Homebrew ãªã brew ã³ãã³ãã§äœãã€ã³ã¹ããŒã«ãããŠããããããŒãžã§ã³ãã©ãããªã©ãäžå
管çã§ãã
ã¡ãªã¿ã« GUI ã®ã¢ããªã Homebrew ã§ç®¡çããããšãå¯èœã ã£ãããã
flowchart TD id1[(localPC)] id1 --> Homebrew Homebrew --> git Homebrew -->fish subgraph CLI git fish end
Homebrew ã䜿çšããŠããªãå Žåã¯ãã®ã³ãã³ã
curl -L https://fly.io/install.sh | sh
Linux ã§ãåãã³ãã³ãã§è¯ãããã
Windows ã®å Žå
ãã®ã³ãã³ã
pwsh -Command "iwr https://fly.io/install.ps1 -useb | iex"
scoop ã®ãããªããã±ãŒãžç®¡çãœããã¯å ¬åŒã«ã¯å¯Ÿå¿ããŠãªãã£ãœã
flyctl ãã€ã³ã¹ããŒã«ããã
ç§ã¯ Homebrew ã䜿çšããŠããã®ã§ brew ã³ãã³ãã§ã€ã³ã¹ããŒã«ãã
ããã§ flyctl ã³ãã³ãã䜿çšå¯èœã«ãªã£ã
2. Sign up (Credit card is required)
flyctl auth signup
flyctl ã³ãã³ãã§ fly.io ã®ã¢ã«ãŠã³ãäœæããŒãžãéã
ãã©ãŠã¶ãèªåã§ç«ã¡äžããã®ã§é©åœã«ã¢ã«ãŠã³ããäœæãã
ã¯ã¬ãžããã«ãŒããç»é²ããŠãã
3. Create the working directory
mkdir flyio
cd flyio
mkdir couchdb
cd couchdb
ãã£ã¬ã¯ããªãäœã
ãã£ã¬ã¯ããªâãã©ã«ããããã®èªèã§è¯ããšæã
ã¿ãŒããã«ã®ãã£ã¬ã¯ããªã®åæäœçœ®ã¯ãŠãŒã¶ãŒåã®ãã©ã«ã
1 è¡ç®: mkdir ã§ flyio ãã©ã«ããäœæãããšãŠãŒã¶ãŒåã®ãã©ã«ãã®çŽäžã«ãã©ã«ããã§ãã
2 è¡ç®: cd ã¯ãã£ã¬ã¯ããªç§»åã³ãã³ããªã®ã§ flyio ãã©ã«ãã«å
¥ã
3 è¡ç®: mkdir ã§ couchdb ãšãããã©ã«ããäœã
4 è¡ç®: cd ã³ãã³ãã§ couchdb ãã©ã«ãã«å
¥ã
ãããªæãã«ãã©ã«ããäœæãããâ

4. Create an app by CouchDBâs image
flyctl launch --image couchdb
flyctl ã³ãã³ãã§ couchdb ãšããã¿ã€ãã®ã¢ããªãäœãã³ãã³ã
Warning
ç§»è¡ã® flyctl ã³ãã³ãã¯å šãŠ couchdb ãã£ã¬ã¯ã㪠(ãã©ã«ã) å ã§å®è¡ããããš
ã¿ãŒããã«/PowerShell ã¯ãã©ã«ãå ãç§»åã§ãã
åã®æé ã§ cd ã³ãã³ãã§ couchdb ãã£ã¬ã¯ã㪠(ãã©ã«ã) å ã«æ¢ã«å ¥ã£ãŠããã¯ã
èŠããã« Docker ã§ Container ãäœã£ãŠããâããã¯åãããªããŠã OK
ã¢ããŠã³ã¹ã§ã¯ã¿ãŒããã«ã§èšå®ã®åçã衚瀺ãããã£ãŠæžããŠãã£ããã©ç§ããã£ãæã¯
? Do you want to tweak these settings before proceeding?
ãšè¡šç€ºãããã®ã§ y ãæŒã㊠Enter
ãã©ãŠã¶ãèµ·åãããŠä»¥äžã®ãããªç»é¢ã«â

ã¢ããªã®èšå®ãããããããã©ããåŸã§ãããã®ã§ãã®ãŸãŸ Confirm Settings ã§ OK
ãã ãApp name ã ãã¯äœ¿ãããŠããªãååã«å€æŽããå¿
èŠããã
äžæããããš couchdb ãã©ã«ãå
ã«fly.toml ãšããååã®ãã¡ã€ã«ãçæããã
ããã¯ã¢ããªã®èšå®ãã¡ã€ã«ã«ããã
5. Create data volume
ç¶ããŠãã®ã³ãã³ã
flyctl ã³ãã³ã㯠fly ãšæã£ãŠãæ©èœãã
fly volumes create --region nrt couchdata --size 2
nrt ã¯æ±äº¬ã®æå³ãªã®ã§æµ·å€ã«äœãã§ãå Žåã¯è¿ããµãŒããŒã«èšå®ããå¿
èŠããã
æ±äº¬ã®ãµãŒããŒã« 2GB ã®é åã確ä¿ããŸãããšããæå³ã£ãœã
6. Modify created fly.toml as like below. Please change COUCHDB_USER
# fly.toml app configuration file generated for xxxxxx-yyyyyyy-0000
#
# See https://fly.io/docs/reference/configuration/ for information about how to use this file.
#
app = "xxxxxx-yyyyyyy-0000"
primary_region = "nrt"
[http_service]
internal_port = 5984
force_https = true
auto_stop_machines = true
auto_start_machines = true
min_machines_running = 0
processes = ["app"]
[env]
COUCHDB_USER = "your_username"
ERL_FLAGS="-couch_ini /opt/couchdb/etc/default.ini /opt/couchdb/etc/default.d/ /opt/couchdb/etc/local.d /opt/couchdb/etc/local.ini /opt/couchdb/data/persistence.ini"
[mounts]
source="couchdata"
destination="/opt/couchdb/data"
[build]
dockerfile = "./Dockerfile"
ãã£ãçæãããã¢ããªã®èšå®ãã¡ã€ã«ã§ãã fly.toml ããããªæãã«æžãçŽã
app = âxxxxxx-yyyyyyy-0000â ããã«ã¢ããªåãå
¥å
primary_region = ânrtâ ããã¯å°åãå
¥åãæ¥æ¬ãªããã®ãŸãŸã
COUCHDB_USER = âyour_usernameâ ããã¯ã¢ããªã䜿çšããéã®ãŠãŒã¶ãŒåãèšå®
ãã®ä»ã¯ã³ããã§ãªãã±ãŒ
7. Prepare the dockerfile like this.
FROM couchdb:latest
RUN sed -i '2itouch /opt/couchdb/data/persistence.ini && chmod +w /opt/couchdb/data/persistence.ini && fallocate -l 512M /swapfile && chmod 0600 /swapfile && mkswap /swapfile && echo 10 > /proc/sys/vm/swappiness && swapon /swapfile && echo 1 > /proc/sys/vm/overcommit_memory' /docker-entrypoint.sh
ãã®ãããªå 容ãèšèŒããã dockerfile ãäœã
Dockerfile ã¯æ¡åŒµåã®ãªãããã¹ããã¡ã€ã«ãªã®ã§ Mac ãªãããã¹ããšãã£ãããWindows ãªãã¡ã¢åž³ãšãã§é©åœã«ãã¡ã€ã«ãäœæãã
Caution
ãã®æ.text ãªã©ã®æ¡åŒµåã衚瀺ããããæ¶ãå¿ããŠããããšãããã®ã§æ³šæ
ãããã£ãã® fly.toml ãã¿ããšäžèšã®ãããªéšåããã
[build]
dockerfile = "./Dockerfile"
ãã£ãã® dockerfile ãããšã«ã¢ããªãæ§ç¯ãããšããããšããª
â./Dockerfileâ ã®ãšãããããã¯ã«ã¬ã³ããã£ã¬ã¯ããªã® Dockerfile ãšããååã®ãã¡ã€ã«ãæããŠããã®ã§

ãã®æ§ã«ãã¡ã€ã«ãé
眮ãã
8. Set your password as you like.
flyctl secrets set COUCHDB_PASSWORD=your_password
ã¢ããªã®ãã¹ã¯ãŒããèšå®ãã
9. Deploy
flyctl deploy
ã¢ããªãããã〠(æ§ç¯) ãã
couchdb å
ã§å®è¡ããã°å
çšäœæãã Dockerfile ã fly.toml ãèªã¿èŸŒãã§ããã
10. Open in browser.
flyctl open
ãã©ãŠã¶ã§ã¢ããªã®ããŒãžãéã
èªåçã«äžèšã®ããŒãžãéãâ
https://ã¢ããªå.fly.dev
äœã衚瀺ããããæå
11. Open /_utils, Set up CouchDB (Just hit Configure a Single Node)
https://ã¢ããªå.fly.dev/_utils
ãããéããšã¢ããªã®ãã°ã€ã³ç»é¢ãéãã®ã§èšå®ããã¢ããªã®ãŠãŒã¶ãŒåããã¹ã¯ãŒããå ¥åããŠãã°ã€ã³
ç§ã®ç»é¢ã¯ãã§ã«ããŒã¿ããŒã¹ãçæãããŠããããæåã¯ãªã«ã衚瀺ãããŠããªãã¯ãâ

12. Set up Self-hosted LiveSync
ããããå
㯠Obsidian å
ã§åæèšå®ãããŠãã
ã³ãã¥ããã£ãã©ã°ã€ã³ãã Self-hosted Live Sync ãã€ã³ã¹ããŒã«ããŠãèšå®ç»é¢ã«
éæ³äœ¿ãã® wizard ã¿ãããã»ããã¢ãã
- Discard the existing configuration and set up ã® Next ãæŒããšæ¢åã®èšå®ãåé€ãããŠäžæŠç»é¢ãéãã
- å床èšå®ãéãåããã¿ã³ãæŒããšã»ããã¢ãããå§ãŸã
- ããšã¯æµãã§
ãã©ã°ã€ã³ãªã©ã®èšå®ãå ¥ã£ãé ããã¡ã€ã«ãåæèšå®ã§ããã®ã ã (Vault çŽäžã«ãã.obsidian ãã¡ã€ã«)ãç§ã iPhone ãš Mac ã§åæããéã«ã¯æ¶ãããããŠå®å®ããªãã£ãã®ã§äžæŠ off ã«ãã

以äžã®é
ç®ãå
¥åããããšã«ãªãâ
| key | value |
|---|---|
| URI | https://ã¢ããªå.fly.dev/ |
| Username | COUCHDB_USER |
| Password | COUCHDB_PASSWORD |
| Database name | ä»»æã®ããŒã¿ããŒã¹å (å°æååè§è±æ°å) |
13. Hit the Check database configuration button and Every Fix button.
èšå®ã® URI ããŠãŒã¶ãŒåããã¹ã¯ãŒããããŒã¿ãŒããŒã¹åãå
¥åãããŠãããšããã®äžã« check ãã¿ã³ããããæŒããšããåãããªããããŒã¿ããŒã¹ã®èšå®ãè²ã
ãã§ãã¯ããŠããã
é§ç®ãªéšåã¯æšªã« fix ãšè¡šç€ºãããã®ã§å
šãŠã¯ãªãã¯ãã

14. Hit the Test database connection button.
ãã£ãã®ãã§ãã¯ãã¿ã³ã®äžã«é
眮ããŠãããã¹ããã¿ã³ãæŒã
 Connected to ... ã衚瀺ããããæå
15. If you are worried about how it will cost too. be sure to stop the app. (We can run it again with count 1.)
æã£ããã䜿ã£ãŠããŸã£ãŠãéããã£ãŠããå Žå㯠fly ã³ãã³ãã§ãªãã«ã§ãã
fly scale count 0
ããã 1 ã«ãããšåéã§ãã
ãã㯠couchdb ã®ãã£ã¬ã¯ããªå
ã§å®è¡ããã°ããã®ããª
ä»ã®ãšãã䜿çšäºå®ã¯ãªãã®ã§äžæ
端æ«ã远å ãã
ããã¯ç°¡å
- ãã£ãã®éæ³äœ¿ãã® wizard ã¿ãã«
copy setup URIãšãããã¿ã³ãããã®ã§æŒããš URI ãçºè¡ãããŠãã¹ã¯ãŒããèšå®ã§ãã - å¥ç«¯æ« (äŸãã° iPhone) ã§ç©ºã® vault ãäœæããŠãSelf-hosted LiveSync ãã€ã³ã¹ããŒã«ãèšå®ã®
open setup URI - 远å 端æ«ã§ãã¿ãããªéžæè¢ãéžãã§ URI ãšãã¹ã¯ãŒããå ¥åãã
ãããã«
ãã®èšäºã®æå³ã¯æ¥æ¬èªåãšã¡ãã£ãšããçšèªè§£èª¬ãããã
LiveSync ã«ãããšãããå¢ãã§åæããã
ã¹ããã§ã¡ã¢ãåãã®ãæãããã«ãªã£ã