From add78b56ce59a78ee4980c647fd97069ba3d0b21 Mon Sep 17 00:00:00 2001 From: raphjaph Date: Wed, 28 Jun 2023 23:09:06 +0200 Subject: [PATCH 1/9] add ord dev deploy script --- bin/update-ord-dev | 21 ----------------- deploy/deploy-ord-dev | 47 +++++++++++++++++++++++++++++++++++++++ deploy/ord-dev.service | 19 ++++++++++------ deploy/save-ord-dev-state | 17 ++++++++++++++ justfile | 24 +++++++++++--------- 5 files changed, 90 insertions(+), 38 deletions(-) delete mode 100755 bin/update-ord-dev create mode 100755 deploy/deploy-ord-dev create mode 100755 deploy/save-ord-dev-state diff --git a/bin/update-ord-dev b/bin/update-ord-dev deleted file mode 100755 index e70e4a6b37..0000000000 --- a/bin/update-ord-dev +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -set -euxo pipefail - -mkdir -p /etc/systemd/system/ord-dev.service.d - -cp /etc/systemd/system/{ord,ord-dev}.service.d/override.conf - -source ~/.cargo/env - -cargo build --release - -if [[ -f /usr/local/bin/ord-dev ]]; then - mv /usr/local/bin/ord-dev{,.bak} -fi - -cp target/release/ord /usr/local/bin/ord-dev - -cp deploy/ord-dev.service /etc/systemd/system/ -systemctl daemon-reload -systemctl restart ord-dev diff --git a/deploy/deploy-ord-dev b/deploy/deploy-ord-dev new file mode 100755 index 0000000000..ffd06c2126 --- /dev/null +++ b/deploy/deploy-ord-dev @@ -0,0 +1,47 @@ +#!/usr/bin/env bash +set -euxo pipefail + +DOMAIN="ordinals-dev.com" + +# Current local working state +BRANCH=$(git rev-parse --abbrev-ref HEAD) +COMMIT=$(git rev-parse --short HEAD) +DIR="ord-${BRANCH}-${COMMIT}" + +# Create own directory for every deploy +ssh root@${DOMAIN} "mkdir -p /var/lib/ord/${DIR}" +rsync -avz --exclude-from='.gitignore' --exclude ".git" ./ root@${DOMAIN}:/var/lib/ord/${DIR} + +ssh root@${DOMAIN} "echo 'export BRANCH=${BRANCH}' >> ~/.bashrc \ + && echo 'export COMMIT=${COMMIT}' >> ~/.bashrc \ + && echo 'export DIR=${DIR}' >> ~/.bashrc" + +ssh root@${DOMAIN} "cd /var/lib/ord/${DIR} \ + && /root/.cargo/bin/cargo build --release \ + && cp ./target/release/ord /usr/local/bin/ord \ + && systemctl stop ord-dev \ + && cp /var/lib/ord/${DIR}/deploy/ord-dev.service /etc/systemd/system/ \ + && systemctl daemon-reload \ + && systemctl enable ord-dev \ + && systemctl restart ord-dev" + + + + +# mkdir -p /etc/systemd/system/ord-dev.service.d + +# cp /etc/systemd/system/{ord,ord-dev}.service.d/override.conf + +# source ~/.cargo/env + +# cargo build --release + +# if [[ -f /usr/local/bin/ord-dev ]]; then + # mv /usr/local/bin/ord-dev{,.bak} +# fi + +# cp target/release/ord /usr/local/bin/ord-dev + +# cp deploy/ord-dev.service /etc/systemd/system/ +# systemctl daemon-reload +# systemctl restart ord-dev diff --git a/deploy/ord-dev.service b/deploy/ord-dev.service index 8b416d37ec..c513f3deff 100644 --- a/deploy/ord-dev.service +++ b/deploy/ord-dev.service @@ -8,14 +8,16 @@ StartLimitIntervalSec=10m AmbientCapabilities=CAP_NET_BIND_SERVICE Environment=RUST_BACKTRACE=1 Environment=RUST_LOG=info -ExecStart=/usr/local/bin/ord-dev \ +ExecStart=/usr/local/bin/ord \ --bitcoin-data-dir /var/lib/bitcoind \ - --chain ${CHAIN} \ - --data-dir /var/lib/ord-dev \ - --index-sats \ + --data-dir /var/lib/ord \ +# --index-sats \ server \ - --http-port 8080 + --acme-contact mailto:casey@rodarmor.com \ + --http \ + --https Group=ord +LimitNOFILE=65536 MemoryDenyWriteExecute=true NoNewPrivileges=true PrivateDevices=true @@ -24,9 +26,12 @@ ProtectHome=true ProtectSystem=full Restart=on-failure RestartSec=5s -StateDirectory=ord-dev +StateDirectory=ord StateDirectoryMode=0700 TimeoutStopSec=10m Type=simple User=ord -WorkingDirectory=/var/lib/ord-dev +WorkingDirectory=/var/lib/ord + +[Install] +WantedBy=multi-user.target diff --git a/deploy/save-ord-dev-state b/deploy/save-ord-dev-state new file mode 100755 index 0000000000..b8517de77d --- /dev/null +++ b/deploy/save-ord-dev-state @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +set -euo pipefail +PS1='$ ' +source ~/.bashrc + +# Stop, save and export state of running instance +systemctl stop ord-dev + +cd /var/lib/ord + +/usr/local/bin/ord --bitcoin-data-dir /var/lib/bitcoind \ + --data-dir /var/lib/ord \ + index export \ + --tsv inscription_number_to_id-${BRANCH}-${COMMIT}.tsv + +mv inscription_number_to_id-${BRANCH}-${COMMIT}.tsv ./${DIR} +mv index.redb ./${DIR}/index-${BRANCH}-${COMMIT}.redb diff --git a/justfile b/justfile index 94c8cd85e7..f5b39da6c3 100644 --- a/justfile +++ b/justfile @@ -36,6 +36,20 @@ deploy-signet branch="master": (deploy branch "signet" "signet.ordinals.net") deploy-testnet branch="master": (deploy branch "test" "testnet.ordinals.net") +save-ord-dev-state domain="ordinals-dev.com": + scp ./deploy/save-ord-dev-state root@{{domain}}:~ + ssh root@{{domain}} "./save-ord-dev-state" + +deploy-ord-dev domain="ordinals-dev.com": + ./deploy/deploy-ord-dev + +rebuild-ord-dev-database: + systemctl stop ord-dev + rm -f /var/lib/ord-dev/index.redb + rm -f /var/lib/ord-dev/*/index.redb + journalctl --unit ord-dev --rotate + journalctl --unit ord-dev --vacuum-time 1s + log unit="ord" domain="ordinals.net": ssh root@{{domain}} 'journalctl -fu {{unit}}' @@ -69,16 +83,6 @@ open: doc: cargo doc --all --open -update-ord-dev: - ./bin/update-ord-dev - -rebuild-ord-dev-database: && update-ord-dev - systemctl stop ord-dev - rm -f /var/lib/ord-dev/index.redb - rm -f /var/lib/ord-dev/*/index.redb - journalctl --unit ord-dev --rotate - journalctl --unit ord-dev --vacuum-time 1s - prepare-release revision='master': #!/usr/bin/env bash set -euxo pipefail From 667da72be5f372d3ee144b9c9ffdee05f96c2c0c Mon Sep 17 00:00:00 2001 From: raphjaph Date: Wed, 28 Jun 2023 23:24:19 +0200 Subject: [PATCH 2/9] tweaks --- deploy/deploy-ord-dev | 4 +++- deploy/save-ord-dev-state | 7 ++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/deploy/deploy-ord-dev b/deploy/deploy-ord-dev index ffd06c2126..9ce2f55f54 100755 --- a/deploy/deploy-ord-dev +++ b/deploy/deploy-ord-dev @@ -12,9 +12,11 @@ DIR="ord-${BRANCH}-${COMMIT}" ssh root@${DOMAIN} "mkdir -p /var/lib/ord/${DIR}" rsync -avz --exclude-from='.gitignore' --exclude ".git" ./ root@${DOMAIN}:/var/lib/ord/${DIR} +# Clean and prepare ssh root@${DOMAIN} "echo 'export BRANCH=${BRANCH}' >> ~/.bashrc \ && echo 'export COMMIT=${COMMIT}' >> ~/.bashrc \ - && echo 'export DIR=${DIR}' >> ~/.bashrc" + && echo 'export DIR=${DIR}' >> ~/.bashrc \ + && rm /var/lib/ord/index.redb" ssh root@${DOMAIN} "cd /var/lib/ord/${DIR} \ && /root/.cargo/bin/cargo build --release \ diff --git a/deploy/save-ord-dev-state b/deploy/save-ord-dev-state index b8517de77d..8874d612b5 100755 --- a/deploy/save-ord-dev-state +++ b/deploy/save-ord-dev-state @@ -1,17 +1,18 @@ #!/usr/bin/env bash set -euo pipefail -PS1='$ ' +export PS1='$ ' source ~/.bashrc - +env # Stop, save and export state of running instance systemctl stop ord-dev cd /var/lib/ord +cp index.redb ./${DIR}/index-${BRANCH}-${COMMIT}.redb + /usr/local/bin/ord --bitcoin-data-dir /var/lib/bitcoind \ --data-dir /var/lib/ord \ index export \ --tsv inscription_number_to_id-${BRANCH}-${COMMIT}.tsv mv inscription_number_to_id-${BRANCH}-${COMMIT}.tsv ./${DIR} -mv index.redb ./${DIR}/index-${BRANCH}-${COMMIT}.redb From 2ee7e8828eb5c468907dad51e590672f6c2fa5bc Mon Sep 17 00:00:00 2001 From: raphjaph Date: Fri, 30 Jun 2023 18:31:35 +0200 Subject: [PATCH 3/9] should work now --- deploy/deploy-ord-dev | 23 ++++++++++++----------- deploy/save-ord-dev-state | 15 ++++++--------- justfile | 4 ++-- 3 files changed, 20 insertions(+), 22 deletions(-) diff --git a/deploy/deploy-ord-dev b/deploy/deploy-ord-dev index 9ce2f55f54..a7d28faf33 100755 --- a/deploy/deploy-ord-dev +++ b/deploy/deploy-ord-dev @@ -9,23 +9,24 @@ COMMIT=$(git rev-parse --short HEAD) DIR="ord-${BRANCH}-${COMMIT}" # Create own directory for every deploy -ssh root@${DOMAIN} "mkdir -p /var/lib/ord/${DIR}" -rsync -avz --exclude-from='.gitignore' --exclude ".git" ./ root@${DOMAIN}:/var/lib/ord/${DIR} +ssh root@${DOMAIN} "mkdir -p /var/lib/ord/${DIR}/repo" +rsync -avz --exclude-from='.gitignore' --exclude ".git" --exclude "*.redb" ./ root@${DOMAIN}:/var/lib/ord/${DIR}/repo -# Clean and prepare -ssh root@${DOMAIN} "echo 'export BRANCH=${BRANCH}' >> ~/.bashrc \ - && echo 'export COMMIT=${COMMIT}' >> ~/.bashrc \ - && echo 'export DIR=${DIR}' >> ~/.bashrc \ - && rm /var/lib/ord/index.redb" +# Store deployment info in environmental variables +ssh root@${DOMAIN} "echo 'BRANCH=${BRANCH}' >> /etc/environment \ + && echo 'COMMIT=${COMMIT}' >> /etc/environment \ + && echo 'DIR=${DIR}' >> /etc/environment" -ssh root@${DOMAIN} "cd /var/lib/ord/${DIR} \ +# Deploy +ssh root@${DOMAIN} "cd /var/lib/ord/${DIR}/repo \ && /root/.cargo/bin/cargo build --release \ - && cp ./target/release/ord /usr/local/bin/ord \ && systemctl stop ord-dev \ - && cp /var/lib/ord/${DIR}/deploy/ord-dev.service /etc/systemd/system/ \ + && cp ./target/release/ord /usr/local/bin/ord \ + && cp /var/lib/ord/${DIR}/repo/deploy/ord-dev.service /etc/systemd/system/ \ && systemctl daemon-reload \ && systemctl enable ord-dev \ - && systemctl restart ord-dev" + && systemctl restart ord-dev \ + && systemctl status ord-dev" diff --git a/deploy/save-ord-dev-state b/deploy/save-ord-dev-state index 8874d612b5..947d57e416 100755 --- a/deploy/save-ord-dev-state +++ b/deploy/save-ord-dev-state @@ -1,18 +1,15 @@ #!/usr/bin/env bash set -euo pipefail -export PS1='$ ' -source ~/.bashrc -env -# Stop, save and export state of running instance -systemctl stop ord-dev +# Stop and copy index of running instance +systemctl stop ord-dev cd /var/lib/ord - +env cp index.redb ./${DIR}/index-${BRANCH}-${COMMIT}.redb +# Export state /usr/local/bin/ord --bitcoin-data-dir /var/lib/bitcoind \ --data-dir /var/lib/ord \ - index export \ - --tsv inscription_number_to_id-${BRANCH}-${COMMIT}.tsv + index export -mv inscription_number_to_id-${BRANCH}-${COMMIT}.tsv ./${DIR} +mv inscription_number_to_id.tsv ./${DIR}/inscription_number_to_id-${BRANCH}-${COMMIT}.tsv diff --git a/justfile b/justfile index f5b39da6c3..f0cd319c2c 100644 --- a/justfile +++ b/justfile @@ -36,11 +36,11 @@ deploy-signet branch="master": (deploy branch "signet" "signet.ordinals.net") deploy-testnet branch="master": (deploy branch "test" "testnet.ordinals.net") -save-ord-dev-state domain="ordinals-dev.com": +ord-dev-save-state domain="ordinals-dev.com": scp ./deploy/save-ord-dev-state root@{{domain}}:~ ssh root@{{domain}} "./save-ord-dev-state" -deploy-ord-dev domain="ordinals-dev.com": +ord-dev-deploy: ./deploy/deploy-ord-dev rebuild-ord-dev-database: From 1afe0ef42dd0804f965bd7a22ea39d719f04fe9d Mon Sep 17 00:00:00 2001 From: raphjaph Date: Fri, 30 Jun 2023 18:38:05 +0200 Subject: [PATCH 4/9] quick fix --- deploy/deploy-ord-dev | 2 ++ deploy/save-ord-dev-state | 1 + 2 files changed, 3 insertions(+) diff --git a/deploy/deploy-ord-dev b/deploy/deploy-ord-dev index a7d28faf33..150e9088f4 100755 --- a/deploy/deploy-ord-dev +++ b/deploy/deploy-ord-dev @@ -8,6 +8,8 @@ BRANCH=$(git rev-parse --abbrev-ref HEAD) COMMIT=$(git rev-parse --short HEAD) DIR="ord-${BRANCH}-${COMMIT}" +$EDITOR ./deploy/ord-dev.service + # Create own directory for every deploy ssh root@${DOMAIN} "mkdir -p /var/lib/ord/${DIR}/repo" rsync -avz --exclude-from='.gitignore' --exclude ".git" --exclude "*.redb" ./ root@${DOMAIN}:/var/lib/ord/${DIR}/repo diff --git a/deploy/save-ord-dev-state b/deploy/save-ord-dev-state index 947d57e416..4c551d208b 100755 --- a/deploy/save-ord-dev-state +++ b/deploy/save-ord-dev-state @@ -8,6 +8,7 @@ env cp index.redb ./${DIR}/index-${BRANCH}-${COMMIT}.redb # Export state +# Still have to manually set --index-sats or --height-limit /usr/local/bin/ord --bitcoin-data-dir /var/lib/bitcoind \ --data-dir /var/lib/ord \ index export From 67d17526b57c842d2863409d1bd3507d301d9199 Mon Sep 17 00:00:00 2001 From: raphjaph Date: Fri, 30 Jun 2023 18:43:42 +0200 Subject: [PATCH 5/9] remove unnecessary recipe --- justfile | 7 ------- 1 file changed, 7 deletions(-) diff --git a/justfile b/justfile index f0cd319c2c..82d0d3f0b8 100644 --- a/justfile +++ b/justfile @@ -43,13 +43,6 @@ ord-dev-save-state domain="ordinals-dev.com": ord-dev-deploy: ./deploy/deploy-ord-dev -rebuild-ord-dev-database: - systemctl stop ord-dev - rm -f /var/lib/ord-dev/index.redb - rm -f /var/lib/ord-dev/*/index.redb - journalctl --unit ord-dev --rotate - journalctl --unit ord-dev --vacuum-time 1s - log unit="ord" domain="ordinals.net": ssh root@{{domain}} 'journalctl -fu {{unit}}' From c09a805e3d6b59e44ea2611bd2f294610e660c4c Mon Sep 17 00:00:00 2001 From: raphjaph Date: Fri, 30 Jun 2023 18:47:27 +0200 Subject: [PATCH 6/9] quick fix --- deploy/deploy-ord-dev | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/deploy/deploy-ord-dev b/deploy/deploy-ord-dev index 150e9088f4..886b28b507 100755 --- a/deploy/deploy-ord-dev +++ b/deploy/deploy-ord-dev @@ -29,24 +29,3 @@ ssh root@${DOMAIN} "cd /var/lib/ord/${DIR}/repo \ && systemctl enable ord-dev \ && systemctl restart ord-dev \ && systemctl status ord-dev" - - - - -# mkdir -p /etc/systemd/system/ord-dev.service.d - -# cp /etc/systemd/system/{ord,ord-dev}.service.d/override.conf - -# source ~/.cargo/env - -# cargo build --release - -# if [[ -f /usr/local/bin/ord-dev ]]; then - # mv /usr/local/bin/ord-dev{,.bak} -# fi - -# cp target/release/ord /usr/local/bin/ord-dev - -# cp deploy/ord-dev.service /etc/systemd/system/ -# systemctl daemon-reload -# systemctl restart ord-dev From 0950450bc2693d091b0fb6b77918f64c1cdb4623 Mon Sep 17 00:00:00 2001 From: raphjaph Date: Fri, 30 Jun 2023 18:49:08 +0200 Subject: [PATCH 7/9] quick fix --- deploy/deploy-ord-dev | 2 ++ 1 file changed, 2 insertions(+) diff --git a/deploy/deploy-ord-dev b/deploy/deploy-ord-dev index 886b28b507..8defca9ad6 100755 --- a/deploy/deploy-ord-dev +++ b/deploy/deploy-ord-dev @@ -1,6 +1,8 @@ #!/usr/bin/env bash set -euxo pipefail +# This script deploys whatever is currently +# in working directory to our dev server DOMAIN="ordinals-dev.com" # Current local working state From c2757bb3b63c8bb8dc5f599a97f6bab5d2386cdb Mon Sep 17 00:00:00 2001 From: raphjaph Date: Fri, 30 Jun 2023 19:32:18 +0200 Subject: [PATCH 8/9] quick fix --- deploy/save-ord-dev-state | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/deploy/save-ord-dev-state b/deploy/save-ord-dev-state index 4c551d208b..3662bccf65 100755 --- a/deploy/save-ord-dev-state +++ b/deploy/save-ord-dev-state @@ -1,16 +1,17 @@ #!/usr/bin/env bash set -euo pipefail -# Stop and copy index of running instance +# Stops, copies index and exports state of running instance systemctl stop ord-dev + cd /var/lib/ord -env -cp index.redb ./${DIR}/index-${BRANCH}-${COMMIT}.redb -# Export state # Still have to manually set --index-sats or --height-limit /usr/local/bin/ord --bitcoin-data-dir /var/lib/bitcoind \ --data-dir /var/lib/ord \ index export mv inscription_number_to_id.tsv ./${DIR}/inscription_number_to_id-${BRANCH}-${COMMIT}.tsv + +mv index.redb ./${DIR}/index-${BRANCH}-${COMMIT}.redb + From 6bdd021e7d94907517b22165d4cadd1fc09f88ce Mon Sep 17 00:00:00 2001 From: raphjaph Date: Fri, 30 Jun 2023 19:47:49 +0200 Subject: [PATCH 9/9] quick fix --- deploy/deploy-ord-dev | 1 + 1 file changed, 1 insertion(+) diff --git a/deploy/deploy-ord-dev b/deploy/deploy-ord-dev index 8defca9ad6..0dd3a6006c 100755 --- a/deploy/deploy-ord-dev +++ b/deploy/deploy-ord-dev @@ -10,6 +10,7 @@ BRANCH=$(git rev-parse --abbrev-ref HEAD) COMMIT=$(git rev-parse --short HEAD) DIR="ord-${BRANCH}-${COMMIT}" +# Edit service file if you want $EDITOR ./deploy/ord-dev.service # Create own directory for every deploy