From 027f988477acf2ee5e22bdab038a83823141d69f Mon Sep 17 00:00:00 2001 From: Filippo Berto Date: Thu, 27 Apr 2023 11:12:16 +0200 Subject: [PATCH] Helix: display inlay hints Nextcloud deployment --- flake.nix | 2 +- hm_modules/helix.nix | 1 + nixos_modules/garage.nix | 1 + nixos_modules/nextcloud.nix | 22 ++++++++++--- secrets/garage_rpc_secret.age | 48 +++++++++++++-------------- secrets/nextcloud_admin_secret.age | Bin 1280 -> 1384 bytes secrets/nextcloud_bucket_secret.age | Bin 1382 -> 1365 bytes secrets/spotify_password.age | 49 ++++++++++++++-------------- 8 files changed, 69 insertions(+), 54 deletions(-) diff --git a/flake.nix b/flake.nix index 0c0a54b..702542b 100644 --- a/flake.nix +++ b/flake.nix @@ -102,7 +102,6 @@ { # age.secrets.oauth_proxy_client_credentials.file = ./secrets/oauth_proxy_client_credentials.age; age.secrets.spotify_password = { file = ./secrets/spotify_password.age; owner = "bertof"; }; - age.secrets.garage_rpc_secret = { file = ./secrets/garage_rpc_secret.age; owner = "garage"; }; } ./nixos_modules/bertof_user.nix @@ -222,6 +221,7 @@ { home-manager.users.bertof = import ./baldur/hm.nix; } ./nixos_modules/garage.nix + ./nixos_modules/nextcloud.nix ]; }; }; diff --git a/hm_modules/helix.nix b/hm_modules/helix.nix index 0e73fe3..da72e0c 100644 --- a/hm_modules/helix.nix +++ b/hm_modules/helix.nix @@ -21,6 +21,7 @@ theme = "ayu_mirage"; editor = { lsp.display-messages = true; + lsp.display-inlay-hints = true; scrolloff = 5; soft-wrap.enable = true; true-color = true; diff --git a/nixos_modules/garage.nix b/nixos_modules/garage.nix index 13327fd..2cbdf69 100644 --- a/nixos_modules/garage.nix +++ b/nixos_modules/garage.nix @@ -1,6 +1,7 @@ { pkgs, config, lib, ... }: { users.groups.garage = { }; users.users.garage = { isSystemUser = true; group = "garage"; }; + age.secrets.garage_rpc_secret = { file = ../secrets/garage_rpc_secret.age; owner = "garage"; }; networking.firewall.interfaces."ztmjfdwjkp".allowedTCPPorts = [ 3901 diff --git a/nixos_modules/nextcloud.nix b/nixos_modules/nextcloud.nix index 025dbe5..0db11b6 100644 --- a/nixos_modules/nextcloud.nix +++ b/nixos_modules/nextcloud.nix @@ -1,13 +1,27 @@ -{ config, ... }: { +{ pkgs, config, ... }: { + + age.secrets = { + nextcloud_admin_secret = { file = ../secrets/nextcloud_admin_secret.age; owner = "nextcloud"; }; + nextcloud_bucket_secret = { file = ../secrets/nextcloud_bucket_secret.age; owner = "nextcloud"; }; + }; + + services.nginx.virtualHosts.${config.services.nextcloud.hostName} = { + enableACME = true; + forceSSL = true; + }; + services.nextcloud = { enable = true; - hostName = "freya.local"; + package = pkgs.unstable_pkgs.nextcloud26; + + hostName = "my-nextcloud.bertof.net"; + maxUploadSize = "32G"; config.adminpassFile = config.age.secrets.nextcloud_admin_secret.path; config.objectstore.s3 = { enable = true; - bucket = "nextcloud-bucket"; + bucket = "nextcloud"; autocreate = false; - key = "GK42a6b774429bfc254f4a5d36"; + key = "GK622e38479552cbbbba48fd04"; secretFile = config.age.secrets.nextcloud_bucket_secret.path; hostname = "localhost"; port = 3900; diff --git a/secrets/garage_rpc_secret.age b/secrets/garage_rpc_secret.age index 39bacfd..be511ff 100644 --- a/secrets/garage_rpc_secret.age +++ b/secrets/garage_rpc_secret.age @@ -1,25 +1,25 @@ age-encryption.org/v1 --> ssh-ed25519 lC44xg nIpxUyy08MuFJ9cc/XeqAEMblNelJQbkAWVdL8c++FM -/yPhZvJzqLyWHD/dVrpy/qciYpVP/DA5DIEP5eNSSsc --> ssh-ed25519 2L7QNA WpL8lmto07hSXOpZ44htAIIUxFHwOIs8XaZXt56Jlko -C2xSQ1S3h3Om02BhXQDtJwveG1mLAoHPgiFMsILO2eI --> ssh-ed25519 sNAOqA exocgvIDQZUjlq9guDryMjVJjkMdy/SbmDZQBJ20oTc -w+dEIv6Z9he0WWYJY9PdXFNivn6VtH0l6/Kpbyex84o --> ssh-ed25519 13iwjQ ON58UJSTkJTsuotpTIp1/Q8reyRutHWSrEupYomLpBw -OKrm8MTNISXd01ACeUj1OMcbAWzneLFpHm7Ms8tzjPA --> ssh-ed25519 7MB20A hmw7MJSSbSHwckx9Tk/9x+SsyHNvBPamu1f6LsVmUyQ -qcgCkK1uc5HaYHfTOxRRW773PpEW3c/gvEu094ng9YE --> ssh-ed25519 IvyYug SJ8Z0/kjxdNjC/InqU8wmhqintT7DdXqVhHmc1ovFyo -VRD3zDh6AMwtVA24yYC1KEUgPZ7baXpFBswK7DqlFdk --> ssh-ed25519 v7O/FA Isf2m+rRPd7/7OkpzYiSTdDZ7Bz+V5wWyAtkqZhHoGw -oxC5o0vOOkuMXnslIRwzPNSPLPUg6olwG04CNsA15CQ --> ssh-ed25519 Wzv8ew 36WVtLCWVXltOp0DOI+13wIHyFyNipYrABQammeawB0 -2HH2ww2uVX4jzlXzJoHYP9W/VBGcpw8YpTw/Awn6DP0 --> ssh-ed25519 XgC3XA DQDnMKY8jDaVlUxFpxSVG5bhqmhHYQh4VimWyEFGtR0 -E0zQkRMYFNWGD1f5+DZcZRAKLdPLl4I9GpHAnMTVPR0 --> ssh-ed25519 l795CA /aSwyb+iwzAs7JFbkUCEG63TNa9TvecOd2fFIHflu3Y -hgSpkb8OyDecZQdSYElSYGHC+GBA0mgHuZeho7Swa+4 --> hVA;w-grease 9%;0zs-E m{dqZB -IpdT0UCfKNEd3kpgCGZVBeQ/kvqDVV4pnLI ---- pnNXlufoQU1IL3aOlDJ3yTiI5eItMPa/fyohWFp9wGE -sUM=n(lYuhMQbS8r !3$/T!\GU(Xv|;4(Sol \ No newline at end of file +-> ssh-ed25519 lC44xg ychfO/nQn0xBBZsyvVTAyYFawVyFigm5WsywfK/kfDA +82ypKNjt/41ZDKATWXnPHUh4lGZ9n/aAiEvGEo1hdxw +-> ssh-ed25519 2L7QNA HSMc0sNNPy39dpsgUT9qNyXzNnFevhpgkj1KwbDFZQM +kn8ktdt0vwa++uJORUZQOWFmmn4mJ+PDm4E0HIQ0/94 +-> ssh-ed25519 sNAOqA GvCvCPUbG3LjmQWAUimsbA/NDoBNJzPnoJi594cegwI +lGC9wWn1Lo44aNXimq1HImX7w1CDsGRXw9C0IFd1BrI +-> ssh-ed25519 13iwjQ yrvtyschjqmaGCSP8qWSrTefE8ctbe4tf1L6ffo6xU4 +ooZrXgNv9ghcsoOebaVjcTELR/vTyhiKg3Hao0tC0ZE +-> ssh-ed25519 7MB20A y9Way1c/1iXusiOhkk6zWObsgRB11Glc/SSJdBBKsVs +mLiZyQFx61KEWPA7BGUD/Ckp5Wi4NSfH9aDpGfNwBZc +-> ssh-ed25519 IvyYug PqoL5RbsxsO72E3tjfZHzvvQ/3yEX0jpFZmVQ8FDhSU +96GpfUAIMxwQOVtrOyiuVm5eVV6isKIaNWqpvWvautI +-> ssh-ed25519 v7O/FA +VH7C9FK23DkFM/ZChV259PPTE03E48B3+FnVmMYfi8 +lSuN6VPgxZQKge8vYjiSJUDiBAETibZnBaObqyrh1dU +-> ssh-ed25519 Wzv8ew Xf28C6hLfYpysyjwIwQheHLr2H0FqU6m+twtcyL5SBE +vIEb6y+pAqzsBCKnqg/cjKbpojHuCX1SoFlsAlXlEW8 +-> ssh-ed25519 XgC3XA Fq1jUNsNPmcfNyu1cBLO+dKN5KRRHQzJ115eaU56G0Y +QA0/b4ICF3EPq7ZL7Gkj+hhI+YHSxQVVucD1QdZrZWg +-> ssh-ed25519 l795CA gqJUSykGRdfZ0JoReEKYqkNETLo8NZgqVyWdshAwIl8 +A23uhE5LdVKSGRr2zgPU3yJfvpWHJ4IDi0iO4biAj1k +-> .-grease < ~~ WMWLfY +JPgVmydA7g9jnNcLZbHG8cd/SBsuYxnKxso +--- vVEO3bWebEWgn6jmie8f+H99IzaXRGnR0H3V3vy42oA +5rl`!y8ΧLdɪL'^9qF gYg)7|חaČ1 .0ѡ6QsеOK4ϸ\D~  \ No newline at end of file diff --git a/secrets/nextcloud_admin_secret.age b/secrets/nextcloud_admin_secret.age index 5b07730aed2fc7e6148d63d0087d09854f4c2799..c3fce91a9cd88a4717375b95486f849f0a0b03fe 100644 GIT binary patch literal 1384 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 ssh-ed25519 lC44xg Gu2a4bBme7wzv8OHEIyRmvyZ0QHLPEHXuf58YGrDsDM -LiIN1QNhgUuPexUUcuZjUHTRUHL+2no7SkYp5+UgIDI --> ssh-ed25519 2L7QNA pCkz1K5J48W9spryk7R10Czq13C9y0nXSr1sqqmKsU8 -mCVZWpAMKh07YdrBDlti0z4Gl7ciphUn7izbzvqAV0I --> ssh-ed25519 sNAOqA LT2C3WVmw22wFWKv9Q+JKtoEn51uNfbcfbjHSpTXjRs -OhQv/ssw88QbasdvinuOM7xVmYtFFm3dDKND5oJW9ic --> ssh-ed25519 13iwjQ vjvgYAeMOSrXHF792LAN2vgHnNchWSfl3dgntFB77Bc -NLp2HNMl8YMNzKCpMAf5R6+yskq+YEyB+z57kECZkcI --> ssh-ed25519 7MB20A 9Y8MaGIHSjuY/wgyENMtcm1mm+7ykvJXfbZuhdbADV8 -rkj2t4HaUltGvg5t2lwoxj43FqkhVAd2O7FNub8ReOU --> ssh-ed25519 IvyYug vXETZBXjzQHgP3R4O3CyetLWCGlc+vaD6mmuvAfq5D0 -vbVvSvQwDJ/+IyPX/IY67DjYZ7mQboK3gpnsid0LYKA --> ssh-ed25519 v7O/FA R4Ruac52xVswdW+kDauFeWq9k88N3o5Rop9HT62/SkY -2HbAe6y0/b78TDtO1LmN5Sjx5jx7BOLJzuGwtS8MdeQ --> ssh-ed25519 Wzv8ew nVmadpPRxk99IZK7ZgzJgWOFXKnp3uIqbIa/JF0PAm4 -FrNKzTxR1QQQaZF8jIe4ZVscEQ50I4ZKKPEWDKJXSL8 --> ssh-ed25519 XgC3XA XP3+BgBK2X0AVNkJR1Dof3dZJxpeYm8X6aeCbqVofEY -L1De6mLmlB+00XIhrsVKU1CDiAuPgo1VRp/VPodzF8o --> ssh-ed25519 l795CA bG/zMcTC7s9QEu/M/eFh9ZNlUO1rs/M9Vo03NrIhYXY -71XRh4maIrge6IqLqk3bD2Pa5yzOnZLLg1q8cyzU4To --> WPjB}A-grease 7 '}kH |)%1tw1qA'|60 \ No newline at end of file +-> ssh-ed25519 lC44xg qx8ScB8EQSt3zYm/ssCJBJhDnKRnISz6SDIVtp/CVUw +KyzGrKbTVrd7+3Qxo7pIE+B0ZfGY8M/ELyX5S52pEfo +-> ssh-ed25519 2L7QNA O+yiQWRmwQTbxVrcR2ZVblt+x67AHVd7Y44uNUG9zWQ +PJJGYlh9IbQBvVKPSUD3PkneDFpNnnSoGBys6NPGygk +-> ssh-ed25519 sNAOqA iKRbXMoXHsvHu0tvlQSSTILcs130LnK7OtkehxoY2DU +9OuE3tdLJhLgcx0UF+PacOd/0XlDj1cZiHcw6YTO0Oo +-> ssh-ed25519 13iwjQ PxNLHEV39X1RKvuIBiklbiv5ygjZWRAD/qGOxyaJw3g +Srqdehuwr6tJ7dCWnV5QsR1mcqb/LUxlnZkKr1gmEPo +-> ssh-ed25519 7MB20A 6nwXbt9UPU08srOlnbVqsM9yYrl2SVmtOhpDoZRpyCw +1IGrugG0f/anCT6nYffvt1kYcoeWNxeROCz0M0Rmmtk +-> ssh-ed25519 IvyYug 1GtgYlEX8tZzK1mBmudqjNr1TE7ZvBuYkY7CyvCsIlk +KEwiOT+zne9PfK+Rh5KxgnBaly8IU/GWG5vubJbOSho +-> ssh-ed25519 v7O/FA dmGBSmygIDpqoF+n4/AWxkvAnvB9lcf3eXjqpHA001M +LTBJvyp/MGYFcLeLBjdatTW0P1Hf1d65AUxBtaANvFg +-> ssh-ed25519 Wzv8ew GRwNr4PcQeiI0qgcl3QGeo2HcFt65DPw+EXHxeNZZD8 +i5QkEwUZLDqJ5VsMcYajnmZ50d04J1WJ406U+bFlQIA +-> ssh-ed25519 XgC3XA DexhXmClBwlAd4/gXAM58MMmLhpqSDCjvWYX2E7X9EU +HNvLtXFRpXh5JJwUfZ00lXyx+I+RWZpQSli4SbZdvYc +-> ssh-ed25519 l795CA pVq9WszC4VOy61ewkCSykfCnknmsOftp+Cg5Hr5epT4 +1bV64LwANMZe77fPql+GlM0h/8LJ8bW4dETkkoX/MeE +-> ]|v,%-grease +cdOa3vKMVCeih1cEkDclR4tHhbAZ+3DMprjA9w +--- Fh6zKYunbTLngs9QpT12TtRPvgjO1zypM4Q9YbgzqJw +L#b*XHU17۝2ѽF4ćHK \ No newline at end of file