diff --git a/.forgejo/workflows/push.yaml b/.forgejo/workflows/push.yaml index f501f6b..6fef5ec 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 && cat 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 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/README.md b/README.md index 2d1f557..f206aaa 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,46 @@ -# 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 +### Nix +If you are using Nix or NixOS you can use ``nix develop`` to enable a local shell which contains Hugo. -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 -## 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 +# Update the submodules +git submodule update --init --recursive +``` + +Replace `` with the actual repository URL. + +--- + +## **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 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-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 new file mode 100644 index 0000000..953254e --- /dev/null +++ b/content/posts/my-first-post.md @@ -0,0 +1,7 @@ ++++ +title = 'My First Post' +date = 2025-02-13T13:26:35Z +draft = false ++++ + +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..4660e00 --- /dev/null +++ b/hugo.toml @@ -0,0 +1,4 @@ +baseURL = 'https://example.org/' +languageCode = 'en-us' +title = 'My New Hugo Site' +theme = 'PaperMod' 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!!

-
- - 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