From b52a477c516316e3a63768579f4340cae4da1453 Mon Sep 17 00:00:00 2001 From: Brendan Golden Date: Thu, 13 Feb 2025 13:54:56 +0000 Subject: [PATCH 1/8] feat: initial setup for hugo --- .gitignore | 11 +++++++ .gitmodules | 3 ++ archetypes/default.md | 5 +++ content/posts/my-first-post.md | 7 ++++ flake.lock | 60 ++++++++++++++++++++++++++++++++++ flake.nix | 24 ++++++++++++++ hugo.toml | 4 +++ themes/PaperMod | 1 + 8 files changed, 115 insertions(+) create mode 100644 .gitmodules create mode 100644 archetypes/default.md create mode 100644 content/posts/my-first-post.md create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 hugo.toml create mode 160000 themes/PaperMod diff --git a/.gitignore b/.gitignore index dce8b15..dc1bf85 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,14 @@ test.* # Dealing with Mac users .DS_Store + +################################################### +# Hugo Stuff +################################################### +# Dont commit lockfiles used for building like this +.hugo_build.lock + +# public is generated +/public + +/**/_gen \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..89af1b0 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "themes/PaperMod"] + path = themes/PaperMod + url = https://github.com/adityatelange/hugo-PaperMod.git diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..c6f3fce --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,5 @@ ++++ +title = '{{ replace .File.ContentBaseName "-" " " | title }}' +date = {{ .Date }} +draft = true ++++ diff --git a/content/posts/my-first-post.md b/content/posts/my-first-post.md new file mode 100644 index 0000000..2c5db96 --- /dev/null +++ b/content/posts/my-first-post.md @@ -0,0 +1,7 @@ ++++ +title = 'My First Post' +date = 2025-02-13T13:26:35Z +draft = true ++++ + +Put yer markdown content here \ No newline at end of file diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..5fecbc5 --- /dev/null +++ b/flake.lock @@ -0,0 +1,60 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1739214665, + "narHash": "sha256-26L8VAu3/1YRxS8MHgBOyOM8xALdo6N0I04PgorE7UM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "64e75cd44acf21c7933d61d7721e812eac1b5a0a", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-unstable", + "type": "indirect" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..88d0e2f --- /dev/null +++ b/flake.nix @@ -0,0 +1,24 @@ +{ + inputs = { + nixpkgs.url = "nixpkgs/nixos-unstable"; + + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = { + self, + nixpkgs, + ... + } @ inputs: let + pkgs = nixpkgs.legacyPackages.x86_64-linux.pkgs; + in { + devShells.x86_64-linux.default = pkgs.mkShell { + name = "Hugo build env"; + nativeBuildInputs = [ + pkgs.hugo + ]; + buildInputs = []; +# shellHook = ''export EDITOR="${pkgs.nano}/bin/nano --nonewlines"; unset LD_LIBRARY_PATH;''; + }; + }; +} diff --git a/hugo.toml b/hugo.toml new file mode 100644 index 0000000..ef25111 --- /dev/null +++ b/hugo.toml @@ -0,0 +1,4 @@ +baseURL = 'https://example.org/' +languageCode = 'en-us' +title = 'My New Hugo Site' +theme = 'PaperMod' \ No newline at end of file diff --git a/themes/PaperMod b/themes/PaperMod new file mode 160000 index 0000000..a020be2 --- /dev/null +++ b/themes/PaperMod @@ -0,0 +1 @@ +Subproject commit a020be2137458dd0a1f4f3a024cd7b076931e9e3 From 29d6b5a22c01a7f93e672aa04772b0bbec66c1d2 Mon Sep 17 00:00:00 2001 From: Brendan Golden Date: Thu, 13 Feb 2025 14:01:52 +0000 Subject: [PATCH 2/8] feat: copied in the pipeline Peace did --- .forgejo/workflows/push.yaml | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/push.yaml b/.forgejo/workflows/push.yaml index f501f6b..1a2f319 100644 --- a/.forgejo/workflows/push.yaml +++ b/.forgejo/workflows/push.yaml @@ -18,11 +18,34 @@ jobs: with: repository: ${{ gitea.repository }} ref_name: ${{ gitea.ref_name }} - # temp one just to get it "built" + + # Step 2: Install latest Hugo + - name: Install Hugo + run: | + HUGO_VERSION=$(curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest | grep -Po '"tag_name": "\K[^"]+' | sed 's/^v//') + wget -q https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-amd64.deb + dpkg -i ./hugo_extended_${HUGO_VERSION}_Linux-amd64.deb + hugo version + + # Step 3: Ensure submodules or themes are initialized (only needed if your using github submodules for theme purposes) + - name: Initialize Submodules + run: git submodule update --init --recursive + + # Step 4: Set the correct URL for skynet + - name: Set the site URL correctly + run: sed -i 's%baseURL.*%baseURL=https://${{ env.GITHUB_REPOSITORY_OWNER }}.users.skynet.ie%' hugo.toml + + # Step 4: Build the Hugo site + - name: Build Hugo site + env: + HUGO_ENV: production + run: hugo --minify # Reduce resources by minifying content + + # Step 5: Deploy the /public directory to the server - uses: https://forgejo.skynet.ie/Skynet/actions/deploy_user@v6 with: ssh_key: ${{ secrets.SSH_KEY }} username: ${{ env.GITHUB_REPOSITORY_OWNER }} - folder: "src" + folder: "public" # uncomment below if you want to deploy to a subfolder #destination: "subfolder" \ No newline at end of file From fd91e8cc92bc6f07fb9c4c338735061a6a548e6a Mon Sep 17 00:00:00 2001 From: Brendan Golden Date: Thu, 13 Feb 2025 14:02:05 +0000 Subject: [PATCH 3/8] test: have one post and one draft --- content/posts/my-first-draft.md | 7 +++++++ content/posts/my-first-post.md | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 content/posts/my-first-draft.md diff --git a/content/posts/my-first-draft.md b/content/posts/my-first-draft.md new file mode 100644 index 0000000..e4706fe --- /dev/null +++ b/content/posts/my-first-draft.md @@ -0,0 +1,7 @@ ++++ +title = 'My First Draft' +date = 2025-02-13T13:26:35Z +draft = true ++++ + +This page wont be shown publicly yet \ No newline at end of file diff --git a/content/posts/my-first-post.md b/content/posts/my-first-post.md index 2c5db96..953254e 100644 --- a/content/posts/my-first-post.md +++ b/content/posts/my-first-post.md @@ -1,7 +1,7 @@ +++ title = 'My First Post' date = 2025-02-13T13:26:35Z -draft = true +draft = false +++ Put yer markdown content here \ No newline at end of file From 7517534eb013e52849eedcf3068593767d7a93b2 Mon Sep 17 00:00:00 2001 From: Brendan Golden Date: Thu, 13 Feb 2025 14:07:05 +0000 Subject: [PATCH 4/8] test: pipeline --- .forgejo/workflows/push.yaml | 2 +- hugo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/push.yaml b/.forgejo/workflows/push.yaml index 1a2f319..6fef5ec 100644 --- a/.forgejo/workflows/push.yaml +++ b/.forgejo/workflows/push.yaml @@ -33,7 +33,7 @@ jobs: # Step 4: Set the correct URL for skynet - name: Set the site URL correctly - run: sed -i 's%baseURL.*%baseURL=https://${{ env.GITHUB_REPOSITORY_OWNER }}.users.skynet.ie%' hugo.toml + run: sed -i "s%baseURL.*%baseURL='https://${{ env.GITHUB_REPOSITORY_OWNER }}.users.skynet.ie'%" hugo.toml && cat hugo.toml # Step 4: Build the Hugo site - name: Build Hugo site diff --git a/hugo.toml b/hugo.toml index ef25111..4660e00 100644 --- a/hugo.toml +++ b/hugo.toml @@ -1,4 +1,4 @@ baseURL = 'https://example.org/' languageCode = 'en-us' title = 'My New Hugo Site' -theme = 'PaperMod' \ No newline at end of file +theme = 'PaperMod' From ec8ebf0e86837546ec89201875189c583075f9cc Mon Sep 17 00:00:00 2001 From: PeaceNira Date: Wed, 12 Feb 2025 17:54:06 +0000 Subject: [PATCH 5/8] read me (cherry picked from commit e50075b542451597bf5a820e2a09c82a2f0d6d1e) --- README.md | 56 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 2d1f557..f43090a 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,40 @@ -# Deploying to Skynet -This is a repo that is used as a template to deploy to Skynet -## Create a Skynet Account -To be able to have a website on Skynet you must first have a Skynet account. -[Instructions on how to create a Skynet Account](https://wiki.skynet.ie/tutorials/skynet/create_account) +--- -## Create SSH Key -Details to do this can be found here: [wiki](https://wiki.skynet.ie/tutorials/skynet/create_ssh/) -It is recommended to create a new key for just Forgejo Actions. -**_Do not add a password to the key_**, it will cause the pipeline to fail. +# Hugo Site Setup Guide -### Add key to Skynet account -Add the contents of ``$USERNAME.pub`` (public key) to [your skynet account](https://account.skynet.ie/modify_ssh) -``[CTRL]+[A]`` and ``[CTRL]+[V]`` will copy/paste everything. -The key must remain in its "armor" and the trailing newline at the end must be preserved. +## **1. Set Up Remote Keys** +Follow the steps in the link below to configure your remote keys: +🔗 [Remote Key Setup Instructions](https://forgejo.skynet.ie/Skynet/deploy_user) -## Secrets -One secret must be added to make this work. +--- -Secrets are found in your repo under ``Settings > Actions > Secrets`` +## **2. Install Hugo** +Install Hugo by following the official guide: +🔗 [Hugo Installation Instructions](https://gohugo.io/installation/) -* SSH_KEY - * This is your private key that was generated above - * Copy paste it exactly +--- -End result should look like this: -![Secrets](resources/Secrets.png) +## **3. Clone the Repository** +Run the following command to clone the repository: +```sh +git clone +``` +Replace `` with the actual repository URL. -## Make changes to ``src`` -Make changes to the files in ``src``. -Commit and push. -If everything was set up fine then your site will soon be live on ``https://$USERNAME.users.skynet.ie`` \ No newline at end of file +--- + +## **4. Choose & Configure a Theme** + +### **If you want to continue using PaperMod** +You can find customization and usage details here: +🔗 [PaperMod Wiki](https://github.com/adityatelange/hugo-PaperMod/wiki/) + +### **If you want to switch themes** +Browse other Hugo themes here: +🔗 [Hugo Themes](https://themes.gohugo.io/) + +**Note:** This project uses **YAML** for configuration, while many Hugo themes use **TOML**. Adjust the settings accordingly. + +--- \ No newline at end of file From 4f3cc82296a5e57a3a1b121d223fbc00ddd4f293 Mon Sep 17 00:00:00 2001 From: Brendan Golden Date: Thu, 13 Feb 2025 15:31:12 +0000 Subject: [PATCH 6/8] doc: added minor instruction on how to install hugo via nix --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index f43090a..08a08f7 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,9 @@ Follow the steps in the link below to configure your remote keys: Install Hugo by following the official guide: 🔗 [Hugo Installation Instructions](https://gohugo.io/installation/) +### Nix +If you are using Nix or NixOS you can use ``nix develop`` to enable a local shell which contains Hugo. + --- ## **3. Clone the Repository** From 04edb53fef8098389a099962e8212c9ae403dd96 Mon Sep 17 00:00:00 2001 From: Brendan Golden Date: Thu, 13 Feb 2025 15:37:44 +0000 Subject: [PATCH 7/8] doc: also pull in the submodules --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 08a08f7..f206aaa 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,9 @@ If you are using Nix or NixOS you can use ``nix develop`` to enable a local shel Run the following command to clone the repository: ```sh git clone + +# Update the submodules +git submodule update --init --recursive ``` Replace `` with the actual repository URL. From 6ff09c4bfe7d11d6d7003ed95c98e6f2d400baad Mon Sep 17 00:00:00 2001 From: Brendan Golden Date: Thu, 13 Feb 2025 16:56:30 +0000 Subject: [PATCH 8/8] fix: this file does nothing in hugo --- src/index.html | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 src/index.html diff --git a/src/index.html b/src/index.html deleted file mode 100644 index 8236fdc..0000000 --- a/src/index.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - -
-

Hello World!

-

All hail Skynet!!

-
- -