webpage/docs/developer-guide/development.md
The fastest way to contribute to Neko is to run the backend in Docker and the frontend locally with hot reload. No need to rebuild the whole Docker image on every change.
The only prerequisite is Docker.
Start by cloning the repository:
git clone https://github.com/m1k1o/neko.git
cd neko
All backend dev scripts live in server/dev/.
Build the required Docker images (only needed once, or after major dependency changes):
cd server/dev
./build
cd server/dev
./start
This starts the neko backend inside Docker and exposes it on port 3000. The container is named neko_server_dev and is kept running in the foreground.
You can pass nvidia or intel as an argument to enable GPU acceleration:
./start nvidia
./start intel
After editing Go source files, rebuild and hot-swap the binary into the running container without restarting Docker:
# in a new terminal
cd server/dev
./rebuild
./rebuild compiles the server, copies the new binary (and any plugins) into the running neko_server_dev container, then tells supervisord to restart only the neko process - the full Docker image is never rebuilt.
All frontend dev scripts live in client/dev/.
Dependencies are installed automatically the first time you run ./serve. To install them manually (or to force a reinstall), run:
cd client/dev
./serve -i
Alternatively, use the provided npm wrapper that runs inside Docker:
cd client/dev
./npm install
cd client/dev
./serve
This starts the Vue dev server on port 3001, proxying API calls to the backend on port 3000. Any change you save to a file under client/src/ is reflected in the browser instantly - no page reload required.
| Service | URL |
|---|---|
| Backend (Docker) | http://localhost:3000 |
| Frontend (hot reload) | http://localhost:3001 |
cd server/dev && ./startcd client/dev && ./servehttp://localhost:3001 in your browser.cd server/dev && ./rebuild in Terminal 3 to apply changes.