Caution
This project is in active development and does not provide any stable release yet, you can expect breaking changes until our first real release!
Gopoad will be a simple web interface to write and update markdown-based documents. You can compare it with an Etherpad, just focused on markdown writing and formatting. I thought it's time to implement a shiny application with Go for the API and with VueJS for the UI.
You can download prebuilt binaries from the GitHub releases or from our download site. Besides that we also prepared repositories for DEB and RPM packages which can be found at [Cloudsmith][pkgrepo]. If you prefer to use containers you could use our images published on GHCR, Docker Hub or Quay. You are a Mac user? Just take a look at our homebrew formula. If you need further guidance how to install this take a look at our documentation.
Package repository hosting is graciously provided by Cloudsmith. Cloudsmith is the only fully hosted, cloud-native, universal package management solution, that enables your organization to create, store and share packages in any format, to any place, with total confidence.
We use mise to manage all required tools and their versions. Install it
by following the official installation instructions, then run
the following commands inside the repository to activate mise and install all
tools defined in mise.toml:
mise trust
mise installSince all required commands ar part of our go-task taskfile the commands you got to execute are quite simple:
git clone https://github.com/gopad/gopad-api.git
cd gopad-api
task fe:install fe:build be:build
./bin/gopad-api -hWe are embedding all the static assets into the binary so there is no need for any webserver or anything else beside launching this binary.
If you are using the provided DevContainers you could directly start without installing mise on your system since it will launch a feature for it.
To start developing on this project you have to execute only a few commands in multiple terminal tabs or windows:
task watch:server
task watch:frontendThe development server of the backend should be running on http://localhost:8080 while the frontend should be running on http://localhost:5173. Generally it supports hot reloading which means the services are automatically restarted/reloaded on code changes.
If you find a security issue please contact gopad@webhippie.de first.
Generally we are following conventional commits when we apply changes. That way we are able to generate proper changelogs for every release. Please use always pull requests to integrate new functionalities or to fix issues.
For the release process we are following semantic versioning which clearly indicates if a new version just resolves bugs, includes new features or even includes breaking changes.
After installing the tools via mise install as described above set up the
pre-commit hooks so they run automatically on every commit:
pre-commit install --hook-type pre-commit --hook-type commit-msg
pre-commitis managed by mise and will be available aftermise install.
If you have changed something on the source you should simply commit following the mentioned conventions:
git checkout -b feat/new-feature
git add --all
git commit -m 'feat: added awesome new feature'
git push --set-upstream origin feat/new-featureAfter pushing your changes into the Git repository you should create a pull request on GitHub. If the pull request have been merged and everything built fine it will also create automatically a new release at least once a week.
Apache-2.0
Copyright (c) 2018 Thomas Boerger <thomas@webhippie.de>