Files

4.3 KiB
Raw Permalink Blame History

Publishing HSCompare to Your Gitea & Dalamud Installer

This guide covers pushing the plugin to your self-hosted Gitea and making it installable via Dalamuds plugin installer (custom repository).


Edit HSCompare/HSCompare.json and set RepoUrl to your Gitea repo (e.g. https://gitea.example.com/yourname/HSCompare).
This is used in the installer and in the plugin master.


2. Push the Project to Gitea

  1. Create a new repository on your Gitea instance (e.g. HSCompare).
  2. Initialize git in the plugin folder (if not already):
    cd "/path/to/HSCompare"
    git init
    git add .
    git commit -m "Initial commit"
    
  3. Add the Gitea remote and push:
    git remote add origin https://gitea.example.com/yourname/HSCompare.git
    git branch -M main
    git push -u origin main
    

3. Build the Release Zip

From the plugin solution directory:

cd "/path/to/HSCompare"
dotnet build -c Release

The installer-ready zip is produced at:

  • Path: HSCompare/bin/Release/HSCompare/latest.zip
  • Contents: HSCompare.dll, HSCompare.json, and any deps the SDK includes.

Use this file for every release (e.g. rename to HSCompare-1.0.2.zip or keep as latest.zip).


4. Publish a Release on Gitea

  1. In your Gitea repo, open ReleasesCreate new release.
  2. Tag: e.g. v1.0.2 (match your plugin version).
  3. Title: e.g. v1.0.2 or “HSCompare 1.0.2”.
  4. Attach the zip: upload HSCompare/bin/Release/HSCompare/latest.zip.
  5. Save the release.

Download URL will look like:

https://gitea.example.com/yourname/HSCompare/releases/download/v1.0.2/latest.zip

(Replace gitea.example.com, yourname, tag and filename if you use another tag or filename.)


5. Host the Plugin Master (so Dalamud can see it)

The installer needs a single JSON file (plugin master) that lists your plugin and points to the zip.

  1. In the repo root there is a pluginmaster.json file (see below).
  2. Edit it once per release:
    • Set DownloadLinkInstall and DownloadLinkUpdate to the release zip URL from step 4.
    • Set LastUpdate to the current Unix timestamp (e.g. date +%s on Linux/Mac).
    • Optionally set AssemblyVersion (and TestingAssemblyVersion if you have a testing build).
  3. Commit and push pluginmaster.json:
    git add pluginmaster.json
    git commit -m "Update pluginmaster for v1.0.2"
    git push
    

Raw URL to the file (for Dalamud) will be something like:

https://gitea.example.com/yourname/HSCompare/raw/branch/main/pluginmaster.json

Use main or the branch where you store pluginmaster.json.


6. Add the Custom Repo in Dalamud

  1. In-game, run /xlsettings (or open Dalamud settings).
  2. Open the Experimental tab.
  3. Under Custom Plugin Repositories, click Add.
  4. Paste the raw plugin master URL from step 5, e.g.:
    https://gitea.example.com/yourname/HSCompare/raw/main/pluginmaster.json
    
  5. Save. Your repo will be in the list.

After that, HSCompare should appear in the plugin installer (search or list). Users can install and update from this repo as long as you keep pluginmaster.json and the release zip URL correct.


7. When You Release a New Version

  1. Bump version in HSCompare/HSCompare.csproj (e.g. <Version>1.0.3</Version>).
  2. Update CHANGELOG.md.
  3. Build: dotnet build -c Release
  4. Create a new Gitea release (e.g. tag v1.0.3) and attach the new latest.zip from HSCompare/bin/Release/HSCompare/.
  5. In pluginmaster.json update:
    • DownloadLinkInstall and DownloadLinkUpdate → new zip URL.
    • AssemblyVersion → e.g. 1.0.3.0.
    • LastUpdate → current Unix timestamp.
  6. Commit and push the updated pluginmaster.json.

Users who have your repo added will see the update in the installer.


Summary

What Where
Source code Your Gitea repo (e.g. HSCompare)
Release zip Gitea Release attachment (e.g. latest.zip)
Plugin list for installer pluginmaster.json in repo, served via raw URL
Custom repo URL (in Dalamud) Raw URL to pluginmaster.json

If your Gitea uses a different URL shape for releases or raw files, adjust the URLs in pluginmaster.json and in this guide to match.