Gopad: API server

[!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.
Install
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. 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.
Build
If you are not familiar with Nix it is up to you to have a working
environment for Go (>= 1.24.0) and Nodejs (22.x) as the setup won't we covered
within this guide. Please follow the official install instructions for
Go and [Nodejs][nodejs]. Beside that we are using go-task to
define all commands to build this project.
git clone https://github.com/gopad/gopad-api.git
cd gopad-api
task fe:install fe:build be:build
./bin/gopad-api -h
If you got Nix and Direnv configured you can simply execute
the following commands to get al dependencies including go-task and
the required runtimes installed. You are also able to directly use the process
manager of devenv:
cat << EOF > .envrc
use flake . --impure --extra-experimental-features nix-command
EOF
direnv allow
We are embedding all the static assets into the binary so there is no need for
any webserver or anything else beside launching this binary.
Development
To start developing on this project you have to execute only a few commands. To
start development just execute those commands in different terminals:
task watch:server
task watch:frontend
The 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 got Nix configured you can simply execute the devenv
command to start the frontend, backend, MariaDB, PostgreSQL and Minio:
devenv up
Security
If you find a security issue please contact
gopad@webhippie.de first.
Contributing
Fork -> Patch -> Push -> Pull Request
Authors
License
Apache-2.0
Copyright
Copyright (c) 2018 Thomas Boerger <thomas@webhippie.de>