Co-authored-by: Cursor <cursoragent@cursor.com>
4.3 KiB
Publishing HSCompare to Your Gitea & Dalamud Installer
This guide covers pushing the plugin to your self-hosted Gitea and making it installable via Dalamud’s plugin installer (custom repository).
1. Set Your Repo URL (optional but recommended)
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
- Create a new repository on your Gitea instance (e.g.
HSCompare). - Initialize git in the plugin folder (if not already):
cd "/path/to/HSCompare" git init git add . git commit -m "Initial commit" - 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
- In your Gitea repo, open Releases → Create new release.
- Tag: e.g.
v1.0.2(match your plugin version). - Title: e.g.
v1.0.2or “HSCompare 1.0.2”. - Attach the zip: upload
HSCompare/bin/Release/HSCompare/latest.zip. - 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.
- In the repo root there is a
pluginmaster.jsonfile (see below). - Edit it once per release:
- Set
DownloadLinkInstallandDownloadLinkUpdateto the release zip URL from step 4. - Set
LastUpdateto the current Unix timestamp (e.g.date +%son Linux/Mac). - Optionally set
AssemblyVersion(andTestingAssemblyVersionif you have a testing build).
- Set
- 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
- In-game, run
/xlsettings(or open Dalamud settings). - Open the Experimental tab.
- Under Custom Plugin Repositories, click Add.
- Paste the raw plugin master URL from step 5, e.g.:
https://gitea.example.com/yourname/HSCompare/raw/main/pluginmaster.json - 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
- Bump version in
HSCompare/HSCompare.csproj(e.g.<Version>1.0.3</Version>). - Update CHANGELOG.md.
- Build:
dotnet build -c Release - Create a new Gitea release (e.g. tag
v1.0.3) and attach the newlatest.zipfromHSCompare/bin/Release/HSCompare/. - In
pluginmaster.jsonupdate:DownloadLinkInstallandDownloadLinkUpdate→ new zip URL.AssemblyVersion→ e.g.1.0.3.0.LastUpdate→ current Unix timestamp.
- 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.