Compare commits

...

5 Commits

Author SHA1 Message Date
Noah Masur
488b5d61fd switch ssh wait with a script 2024-03-24 15:34:12 -04:00
Noah Masur
6b5892eb1d make identity wait a finite amount 2024-03-24 15:15:07 -04:00
Noah Masur
c3be92dcaf fix: s3 cp failing in github actions 2024-03-24 15:06:50 -04:00
Noah Masur
64bee30b17 fixes to cloudflare dyndns and ssh 2024-03-24 15:04:40 -04:00
Noah Masur
568fdc7491 temp: skip wait for identity 2024-03-24 14:55:17 -04:00
5 changed files with 33 additions and 26 deletions

View File

@ -7,6 +7,7 @@ env:
CLOUDFLARE_R2_ENDPOINT: "${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com" CLOUDFLARE_R2_ENDPOINT: "${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com"
AWS_ACCESS_KEY_ID: ${{ secrets.CLOUDFLARE_R2_ACCESS_KEY }} AWS_ACCESS_KEY_ID: ${{ secrets.CLOUDFLARE_R2_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CLOUDFLARE_R2_SECRET_KEY }} AWS_SECRET_ACCESS_KEY: ${{ secrets.CLOUDFLARE_R2_SECRET_KEY }}
AWS_DEFAULT_REGION: auto
AWS_ENDPOINT_URL_S3: "https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com" AWS_ENDPOINT_URL_S3: "https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com"
TF_VAR_vultr_api_key: ${{ secrets.VULTR_API_KEY }} TF_VAR_vultr_api_key: ${{ secrets.VULTR_API_KEY }}
@ -106,13 +107,17 @@ jobs:
if: inputs.action == 'create' if: inputs.action == 'create'
id: host id: host
working-directory: ${{ env.TERRAFORM_DIRECTORY }} working-directory: ${{ env.TERRAFORM_DIRECTORY }}
run: terraform output host_ip run: terraform output -raw host_ip
- name: Wait on SSH - name: Wait on SSH
uses: iFaxity/wait-on-action@v1.1.0 if: inputs.action == 'create'
with: run: |
resource: tcp ${{ steps.host.outputs.stdout }}:22 for i in $(seq 1 15); do
interval: 5000 if $(nc -z -w 3 ${{ steps.host.outputs.stdout }} 22); then
exit 0
fi
sleep 10
done
- name: Write Identity Keys to Files - name: Write Identity Keys to Files
if: inputs.action == 'create' if: inputs.action == 'create'
@ -122,4 +127,6 @@ jobs:
- name: Copy Identity File to Host - name: Copy Identity File to Host
if: inputs.action == 'create' if: inputs.action == 'create'
run: scp -i deploy_ed25519 arrow_ed25519 noah@${{ steps.host.outputs.stdout }}:~/.ssh/id_ed25519 run: |
ssh noah@${{ steps.host.outputs.stdout }} 'mkdir -pv .ssh'
scp -i deploy_ed25519 arrow_ed25519 noah@${{ steps.host.outputs.stdout }}:~/.ssh/id_ed25519

View File

@ -1,6 +1,6 @@
{ config, pkgs, ... }: { { config, pkgs, lib, ... }: {
config = { config = lib.mkIf config.physical {
services.xserver = { services.xserver = {

View File

@ -60,7 +60,7 @@ in {
dns = { dns = {
provider = { provider = {
name = "cloudflare"; name = "cloudflare";
api_token = "{env.CF_API_TOKEN}"; api_token = "{env.CLOUDFLARE_API_TOKEN}";
}; };
resolvers = [ "1.1.1.1" ]; resolvers = [ "1.1.1.1" ];
}; };

View File

@ -6,12 +6,12 @@
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
serviceConfig = { Type = "oneshot"; }; serviceConfig = { Type = "oneshot"; };
script = '' script = ''
while true; do for i in $(seq 1 10); do
if [ -f ${config.identityFile} ]; then if [ -f ${config.identityFile} ]; then
echo "Identity file found." echo "Identity file found."
exit 0 exit 0
fi fi
sleep 5 sleep 6
done done
''; '';
}; };

View File

@ -1,17 +1,17 @@
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IE1nSGFPdyBlNHNi YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IE1nSGFPdyBkckt3
VzUvTDdmdndvOUpyMUlvdG5vSGNmdG9yWklPQlFFNVY5RzdabTMwCnh4YXdmY1d4 c1NtVEo1bm1XREk2ZE9PL1FkOFd0LzQ1R0J4TXN4VGd2clVrZ25NCjZKenFTdHFK
dXVzYUhnaXVNam1pb0cxNWowZUQ0WUprczExeDMzQ3dPWEEKLT4gc3NoLWVkMjU1 MWVZSXI0NXdVTkhJQXRFRFBRRnIxRHZaOHY1UWVDYW9vTm8KLT4gc3NoLWVkMjU1
MTkgWXlTVU1RIGJkN3FTSzFFR1ROVTl5UWhqRndnM25DRlVIRHEzUlhZcjNCSUxt MTkgWXlTVU1RIHBmRERwcXdGanBVV0JOczg0Q0hOa1dVM09EeGMxWmJDMm9YU2Mx
dVlvMEUKVmVFWUlML3FPaW04enl6d1R2c1dJaXpNQVhKV0R5aHFDbUlleldRTnNB djhxQkUKS2U2aHVza2JNdzltRW5wcWhqaTVPUEZoZGNWN2szQXlVYjZ3eXpwc2ZE
WQotPiBzc2gtZWQyNTUxOSBuanZYNUEgY0dGbTM2b01VdnlDMTVtck1mSmNybG41 OAotPiBzc2gtZWQyNTUxOSBuanZYNUEgbWU0WXA4RjVZWFdPcXZ5M1UwT3lON1JD
aUE0eHlNUytQcjJBQjhWREpXVQpndHFtb0h0N0pucGN4dnJjbER4c3hPVFBER3V1 cGhlRXZ2NEhWMHdEMitLWERqRQpKRGgwMUhISWE1Uk1ka1dteGo0dlhZcmNjVjN6
ZENwQkUzbmRFVnpjeGpvCi0+IHNzaC1lZDI1NTE5IENxSU9VQSBIOFdxWThKSnpy QmJBQWo0Mko4aE5jUm9rCi0+IHNzaC1lZDI1NTE5IENxSU9VQSBLaU9sSmRzMlFG
T0xQN3Q1djlsV3VwcEdPaDIyZ21uclQ1bWo3T1VXQVF3ClhkQkNqSG5nOTBVcUNF NjBYYTBYeFErNXJwZGVtZ1kvVmVCOXBDZWVoNWhDZ2hrCnE2dkJJSk8rbDRvSHYy
MFhZU1AwQzJCd05IZm5lVmp6cGU2VXlpTlFheEUKLT4gc3NoLWVkMjU1MTkgejFP bEVTdXg0VTg1RzZUNi84K1ZvOVB2aUJzNHVPRkEKLT4gc3NoLWVkMjU1MTkgejFP
Y1p3IGZUd2tnNkxlOEhFamwvbjVQYkphSzM5VEMxNlpZREs1cUd6Q0JtKzNIem8K Y1p3IEM0Mnlockc2SlA1bXJhdnpQNXFnQ2w5bzFSTWpIajJybTBIM3VuNTN5bFUK
Y0trL083WXI1RXdaS1luR0dDYml1R1YwbCtGeUlESkVrbHY3Mk5RdURlOAotLS0g bXNIUVVhTzlRMUJTSEpJUURUMXZjRU5zczNjYnBUVVFmMDVEZllONjFjWQotLS0g
cWE1eFZVb3BEcWhtMlUxd002WitOVFpWb1VXcTVnaVYrNXFzVmlKeC9jRQrVsDej NXdIUWduN2Q2eXFzNlFueFR6OWxITVBranpsNTdXaktiSFZ0TTBxRFNlNAr9JzVO
le+ACsK5t6K1sHxwMh1hEqTFj9oYJ8mdtYec12m8D07xEzZDlRT1WN6YNul1gWGJ Rhx5rG7CSGdYfeMcuzye4jyE2yiVKi5TVr/qp3vbDpyDQKZLlAUSF/K0rTY9K7Rm
B8WcyGfzJTERNhft+/llqNr9YR4w5ePN5F8LBXpEUequ6Q== ocY+y/V9ffh3LO2m1Y6BkRqWRJ7v4wcsc3jNGjDHlSB7EqnOwMCXyQAg
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----