2024-11-25 15:15:33 +00:00
# Version 2 of GoReleaser: https://goreleaser.com/errors/version/
version : 2
2021-09-24 11:14:20 +00:00
project_name : gotosocial
2024-10-12 14:01:57 +00:00
# https://goreleaser.com/customization/hooks/
2021-09-24 11:14:20 +00:00
before :
hooks :
# generate the swagger.yaml file using go-swagger and bundle it into the assets directory
2024-11-25 15:15:33 +00:00
- go run ./vendor/github.com/go-swagger/go-swagger/cmd/swagger generate spec --scan-models --exclude-deps -o web/assets/swagger.yaml
2022-06-09 10:51:19 +00:00
- sed -i "s/REPLACE_ME/{{ incpatch .Version }}/" web/assets/swagger.yaml
2023-10-05 14:06:19 +00:00
# Install web deps + bundle web assets
- yarn --cwd ./web/source install
2023-10-17 10:46:06 +00:00
- yarn --cwd ./web/source ts-patch install # https://typia.io/docs/setup/#manual-setup
2023-10-05 14:06:19 +00:00
- yarn --cwd ./web/source build
2024-10-12 14:01:57 +00:00
# https://goreleaser.com/customization/build/
2021-09-24 11:14:20 +00:00
builds :
2025-02-06 15:23:30 +00:00
# DEFAULT WASM BINARY BUILDS
2021-09-24 11:14:20 +00:00
-
2024-10-10 16:15:02 +00:00
id : gotosocial
2021-09-24 11:14:20 +00:00
main : ./cmd/gotosocial
binary : gotosocial
ldflags :
- -s
- -w
- -extldflags
- -static
- -X main.Version={{.Version}}
tags :
- netgo
- osusergo
- static_build
2023-08-01 12:47:53 +00:00
- kvformat
- timetzdata
2023-12-27 10:23:52 +00:00
- >-
{{ if and (index .Env "DEBUG") (.Env.DEBUG) }}debugenv{{ end }}
2024-10-10 16:15:02 +00:00
env :
- CGO_ENABLED=0
goos :
- linux
- freebsd
2025-02-06 15:23:30 +00:00
- netbsd
2024-10-10 16:15:02 +00:00
goarch :
- amd64
- arm64
mod_timestamp : "{{ .CommitTimestamp }}"
2025-02-06 15:23:30 +00:00
# NOWASM BINARY BUILDS
2024-10-10 16:15:02 +00:00
-
2025-02-06 15:23:30 +00:00
id : gotosocial_nowasm
2024-10-10 16:15:02 +00:00
main : ./cmd/gotosocial
binary : gotosocial
ldflags :
- -s
- -w
- -extldflags
- -static
- -X main.Version={{.Version}}
tags :
- netgo
- osusergo
- static_build
- kvformat
- timetzdata
2025-02-06 15:23:30 +00:00
- nowasm
2024-05-28 13:20:40 +00:00
- >-
2024-10-10 16:15:02 +00:00
{{ if and (index .Env "DEBUG") (.Env.DEBUG) }}debugenv{{ end }}
2021-09-24 11:14:20 +00:00
env :
- CGO_ENABLED=0
goos :
2025-02-06 15:23:30 +00:00
# moderncsqlite doesn't
# build for netbsd right
# now so leave it out.
2021-09-24 11:14:20 +00:00
- linux
- freebsd
goarch :
- 386
- amd64
- arm
- arm64
2022-02-27 12:03:37 +00:00
goarm :
- 6
- 7
2021-09-24 11:14:20 +00:00
ignore :
2025-02-06 15:23:30 +00:00
# Don't build BSDs
# for arm/32-bit.
2021-09-24 11:14:20 +00:00
- goos : freebsd
goarch : arm64
- goos : freebsd
goarch : arm
- goos : freebsd
goarch : 386
mod_timestamp : "{{ .CommitTimestamp }}"
2024-10-12 14:01:57 +00:00
# https://goreleaser.com/customization/docker/
2021-09-24 11:14:20 +00:00
dockers :
2025-02-06 15:23:30 +00:00
# DEFAULT WASM DOCKER BUILDS
2021-09-24 11:14:20 +00:00
-
2022-02-27 12:03:37 +00:00
use : buildx
2021-09-24 11:14:20 +00:00
goos : linux
goarch : amd64
2024-10-10 16:15:02 +00:00
id : amd64
ids :
- gotosocial
2021-09-24 11:14:20 +00:00
image_templates :
2022-02-26 09:45:23 +00:00
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-amd64"
2022-02-27 12:03:37 +00:00
- "superseriousbusiness/{{ .ProjectName }}:latest-amd64"
2024-03-10 10:10:30 +00:00
- "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-amd64{{ end }}"
2021-09-24 11:14:20 +00:00
build_flag_templates :
2022-02-27 12:03:37 +00:00
- "--platform=linux/amd64"
2021-09-24 11:14:20 +00:00
- "--label=org.opencontainers.image.created={{.Date}}"
- "--label=org.opencontainers.image.title={{.ProjectName}}"
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
- "--label=org.opencontainers.image.version={{.Version}}"
extra_files :
- web
2022-06-09 10:51:19 +00:00
- go.mod
- go.sum
- cmd
- internal
2022-02-26 09:45:23 +00:00
-
2022-02-27 12:03:37 +00:00
use : buildx
2022-02-26 09:45:23 +00:00
goos : linux
goarch : arm64
2024-10-10 16:15:02 +00:00
id : arm64v8
ids :
- gotosocial
2022-02-26 09:45:23 +00:00
image_templates :
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-arm64v8"
2022-02-27 12:03:37 +00:00
- "superseriousbusiness/{{ .ProjectName }}:latest-arm64v8"
2024-03-10 10:10:30 +00:00
- "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-arm64v8{{ end }}"
2022-02-26 09:45:23 +00:00
build_flag_templates :
2022-02-27 12:03:37 +00:00
- "--platform=linux/arm64/v8"
2022-02-26 09:45:23 +00:00
- "--label=org.opencontainers.image.created={{.Date}}"
- "--label=org.opencontainers.image.title={{.ProjectName}}"
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
- "--label=org.opencontainers.image.version={{.Version}}"
extra_files :
- web
2022-06-09 10:51:19 +00:00
- go.mod
- go.sum
- cmd
- internal
2024-10-12 14:01:57 +00:00
# https://goreleaser.com/customization/docker_manifest/
2022-02-26 09:45:23 +00:00
docker_manifests :
- name_template : superseriousbusiness/{{ .ProjectName }}:{{ .Version }}
image_templates :
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-amd64
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-arm64v8
- name_template : superseriousbusiness/{{ .ProjectName }}:latest
image_templates :
2022-02-27 12:03:37 +00:00
- superseriousbusiness/{{ .ProjectName }}:latest-amd64
- superseriousbusiness/{{ .ProjectName }}:latest-arm64v8
2024-03-10 10:10:30 +00:00
- name_template : "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot{{ end }}"
2022-11-17 12:24:49 +00:00
image_templates :
- superseriousbusiness/{{ .ProjectName }}:snapshot-amd64
- superseriousbusiness/{{ .ProjectName }}:snapshot-arm64v8
2024-10-12 14:01:57 +00:00
# https://goreleaser.com/customization/archive/
2021-09-24 11:14:20 +00:00
archives :
2025-02-06 15:23:30 +00:00
# DEFAULT WASM BUILD
2024-10-10 16:15:02 +00:00
-
id : gotosocial
builds :
- gotosocial
files :
# standard release files
- LICENSE
- README.md
- CHANGELOG*
# web stuff minus source
- web/assets
- web/template
# example config files
- example/config.yaml
- example/gotosocial.service
name_template : "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ with .Arm }}v{{ . }}{{ end }}{{ with .Mips }}_{{ . }}{{ end }}{{ if not (eq .Amd64 \"v1\") }}{{ .Amd64 }}{{ end }}"
2025-02-06 15:23:30 +00:00
# NOWASM BUILD
2021-09-24 11:14:20 +00:00
-
2025-02-06 15:23:30 +00:00
id : gotosocial_nowasm
2024-10-10 16:15:02 +00:00
builds :
2025-02-06 15:23:30 +00:00
- gotosocial_nowasm
2021-09-24 11:14:20 +00:00
files :
# standard release files
- LICENSE
- README.md
- CHANGELOG*
2022-06-19 14:44:38 +00:00
# web stuff minus source
2022-06-09 10:51:19 +00:00
- web/assets
- web/template
2021-12-12 14:54:51 +00:00
# example config files
2021-09-24 11:14:20 +00:00
- example/config.yaml
2021-12-12 14:54:51 +00:00
- example/gotosocial.service
2025-02-06 15:23:30 +00:00
name_template : "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ with .Arm }}v{{ . }}{{ end }}{{ with .Mips }}_{{ . }}{{ end }}{{ if not (eq .Amd64 \"v1\") }}{{ .Amd64 }}{{ end }}_nowasm"
2022-06-19 14:44:38 +00:00
-
id : web-assets
files :
- LICENSE
# just the web stuff minus source
- web/assets
- web/template
meta : true
name_template : "{{ .ProjectName }}_{{ .Version }}_web-assets"
2024-10-12 14:01:57 +00:00
# https://goreleaser.com/customization/checksum/
2021-09-24 11:14:20 +00:00
checksum :
name_template : 'checksums.txt'
2024-10-12 14:01:57 +00:00
# https://goreleaser.com/customization/snapshots/
2021-09-24 11:14:20 +00:00
snapshot :
2024-10-12 14:01:57 +00:00
version_template : "{{ incpatch .Version }}-SNAPSHOT"
# https://goreleaser.com/customization/source/
2021-09-24 11:14:20 +00:00
source :
2022-07-03 10:01:13 +00:00
enabled : true
name_template : "{{ .ProjectName }}-{{ .Version }}-source-code"
2024-10-12 14:01:57 +00:00
# https://goreleaser.com/customization/release/
release :
draft : true
2024-10-12 14:26:21 +00:00
prerelease : auto
2024-10-12 14:01:57 +00:00
header : |
Here's version {{ .Version }} of GoToSocial.
2024-10-14 14:02:16 +00:00
Please read the migration notes carefully for instructions on how to upgrade to this version.
2024-10-12 14:01:57 +00:00
## Release highlights
2024-10-14 14:02:16 +00:00
2024-10-12 14:01:57 +00:00
- Pee pee
- Poo poo
- Wee wee
## Migration notes
### Upgrading
To upgrade to {{ .Tag }} from a previous release:
#### Binary/tar
1 . Stop GoToSocial.
2 . **Back up your database!** If you're running on SQLite, this is as simple as copying your `sqlite.db` file, eg., `cp sqlite.db sqlite.db.backup`.
3 . Download and untar the new release, including the web assets and html templates.
4 . Edit your config.yaml file if necessary (see below).
5 . Start GoToSocial.
6 . Wait patiently for any migrations to run, **do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup**!
7 . Enjoy your updated instance.
2024-10-14 14:02:16 +00:00
2024-10-12 14:01:57 +00:00
#### Docker
1 . Stop GoToSocial.
2 . **Back up your database!** If you're running on SQLite, this is as simple as copying your `sqlite.db` file, eg., `cp sqlite.db sqlite.db.backup`.
3 . Pull the new docker container (`superseriousbusiness/gotosocial:{{ .Version }}` or `superseriousbusiness/gotosocial:latest`)
4 . Edit your config.yaml file or environment variables if necessary (see below).
5 . Start GoToSocial.
6 . Wait patiently for any migrations to run, **do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup**!
7 . Enjoy your updated instance.
### config.yaml
The configuration file has changed since the previous release.
- Changed `pee pee` to `poo poo`.
- Changed `wee wee` to `more wee wee`.
2024-10-14 14:02:16 +00:00
2024-10-12 14:01:57 +00:00
You can see a diff of the config file here : https://github.com/superseriousbusiness/gotosocial/compare/{{ .PreviousTag }}...{{ .Tag }}#diff-c071e03510b2c57e193a44503fd9528a785f0f411497cc75841a9f8d0b1ac622
### Database Migrations
⚠️⚠️⚠️
This release may contain database migrations which will run the first time you start up this new version.
Be sure not to interrupt this migration process.
This will take anywhere between a couple seconds and ten minutes or more (on slower hardware).
**Please be patient!**
2024-10-14 14:02:16 +00:00
2024-10-12 14:01:57 +00:00
⚠️⚠️⚠️
### Which release archive/container should I use?
2025-02-06 15:23:30 +00:00
GoToSocial releases binary builds for 64-bit Linux, FreeBSD, and NetBSD operating systems. We also release Docker builds for 64-bit Linux.
| OS | Architecture | Support level | Binary archive | Docker |
| ------- | ----------------------- | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| Linux | x86-64/AMD64 (64-bit) | 🟢 Full | [linux_amd64.tar.gz](https://github.com/superseriousbusiness/gotosocial/releases/download/{{ .Tag }}/gotosocial_{{ .Version }}_linux_amd64.tar.gz) | `superseriousbusiness/gotosocial:{{ .Version }}` |
| Linux | Armv8/ARM64 (64-bit) | 🟢 Full | [linux_arm64.tar.gz](https://github.com/superseriousbusiness/gotosocial/releases/download/{{ .Tag }}/gotosocial_{{ .Version }}_linux_arm64.tar.gz) | `superseriousbusiness/gotosocial:{{ .Version }}` |
| FreeBSD | x86-64/AMD64 (64-bit) | 🟢 Full | [freebsd_amd64.tar.gz](https://github.com/superseriousbusiness/gotosocial/releases/download/{{ .Tag }}/gotosocial_{{ .Version }}_freebsd_amd64.tar.gz) | Not provided |
| FreeBSD | Armv8/ARM64 (64-bit) | 🟢 Full | [freebsd_arm64.tar.gz](https://github.com/superseriousbusiness/gotosocial/releases/download/{{ .Tag }}/gotosocial_{{ .Version }}_freebsd_arm64.tar.gz) | Not provided |
| NetBSD | x86-64/AMD64 (64-bit) | 🟢 Full | [netbsd_amd64.tar.gz](https://github.com/superseriousbusiness/gotosocial/releases/download/{{ .Tag }}/gotosocial_{{ .Version }}_netbsd_amd64.tar.gz) | Not provided |
| NetBSD | Armv8/ARM64 (64-bit) | 🟢 Full | [netbsd_arm64.tar.gz](https://github.com/superseriousbusiness/gotosocial/releases/download/{{ .Tag }}/gotosocial_{{ .Version }}_netbsd_arm64.tar.gz) | Not provided |
2024-10-14 09:41:55 +00:00
2025-02-06 15:23:30 +00:00
#### `nowasm`
2024-10-14 09:41:55 +00:00
2025-02-06 15:23:30 +00:00
For your convenience, we also provide **UNSUPPORTED, EXPERIMENTAL BUILDS**, created using the `nowasm` tag, in the downloads list below. There is no Docker build for `nowasm`.
2024-10-14 09:41:55 +00:00
2025-02-06 15:23:30 +00:00
GoToSocial releases built with `nowasm` use the Go-native, modernc version of SQLite instead of the WASM one, and will use *on-system ffmpeg and ffprobe binaries* for media processing.
2024-10-14 09:41:55 +00:00
2025-02-06 15:23:30 +00:00
Using a `nowasm` build is currently the only way to run GoToSocial on a 32-bit system.
2024-10-12 14:01:57 +00:00
2025-02-06 15:23:30 +00:00
For more information on running a `nowasm` build, see the [nowasm](https://docs.gotosocial.org/en/latest/advanced/builds/nowasm/) documentation page.
2024-10-12 14:01:57 +00:00
# https://goreleaser.com/customization/changelog/
changelog :
use : github
groups :
- title : Features and performance
2024-10-14 14:02:16 +00:00
regexp : '^.*\[(?:feature|performance).*\].*$'
2024-10-12 14:01:57 +00:00
order : 0
- title : Bug fixes
2024-10-14 14:02:16 +00:00
regexp : '^.*\[bug.*\].*$'
2024-10-12 14:01:57 +00:00
order : 1
- title : Chores & version bumps
2024-10-14 14:02:16 +00:00
regexp : '^.*\[chore.*\].*$'
2024-10-12 14:01:57 +00:00
order : 2
- title : Documentation
2024-10-14 14:02:16 +00:00
regexp : '^.*\[doc.*\].*$'
2024-10-12 14:01:57 +00:00
order : 3
- title : Other
order : 999