Thanks for taking the time to improve PocketBase!
This document describes how to prepare a PR for a change in the main repository.
If you haven't already, you can fork the main repository and clone your fork so that you can work locally:
git clone https://github.com/your_username/pocketbase.git
[!IMPORTANT] It is recommended to create a new branch from master for each of your bugfixes and features. This is required if you are planning to submit multiple PRs in order to keep the changes separate for review until they eventually get merged.
PocketBase is distributed as a Go package, which means that in order to run the project you'll have to create a Go main
program that imports the package.
The repository already includes such program, located in examples/base
, that is also used for the prebuilt executables.
So, let's assume that you already done some changes in the PocketBase Go code and you want now to run them:
examples/base
go run main.go serve
This will start a web server on http://localhost:8090
with the embedded prebuilt Admin UI from ui/dist
. And that's it!
Before making a PR to the main repository, it is a good idea to:
Add unit/integration tests for your changes (we are using the standard testing
go package).
To run the tests, you could execute (while in the root project directory):
go test ./...
# or using the Makefile
make test
Run the linter - golangci (see how to install):
golangci-lint run -c ./golangci.yml ./...
# or using the Makefile
make lint
PocketBase Admin UI is a single-page application (SPA) built with Svelte and Vite.
To start the Admin UI:
ui
project directorynpm install
to install the node dependenciesnpm run dev
You could open the browser and access the running Admin UI at http://localhost:3000
.
Since the Admin UI is just a client-side application, you need to have the PocketBase backend server also running in the background (either manually running the examples/base/main.go
or download a prebuilt executable).
[!NOTE] By default, the Admin UI is expecting the backend server to be started at
http://localhost:8090
, but you could change that by creating a newui/.env.development.local
file withPB_BACKEND_URL = YOUR_ADDRESS
variable inside it.
Every change you make in the Admin UI should be automatically reflected in the browser at http://localhost:3000
without reloading the page.
Once you are done with your changes, you have to build the Admin UI with npm run build
, so that it can be embedded in the go package. And that's it - you can make your PR to the main PocketBase repository.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。