mirror of
https://gitlab.com/bramw/baserow.git
synced 2025-01-31 03:12:45 +00:00
154 lines
5.7 KiB
Markdown
154 lines
5.7 KiB
Markdown
# Running the dev environment
|
|
|
|
If you want to contribute to Baserow you need to setup the development environment on
|
|
your local computer. The best way to do this is via `docker-compose` so that you can
|
|
start the app with the least amount of hassle.
|
|
|
|
### Quickstart
|
|
|
|
If you are familiar with git and docker-compose run these commands to launch Baserow's
|
|
dev environment locally, otherwise please start from the Installing Requirements section
|
|
below.
|
|
|
|
```bash
|
|
$ git clone --branch develop https://gitlab.com/baserow/baserow.git
|
|
# Our supplied ./dev.sh script wraps docker-compose setting the correct env vars for
|
|
# you to get hot code reloading working well.
|
|
$ ./dev.sh
|
|
# Run ./dev.sh help for further details.
|
|
$ ./dev.sh help
|
|
```
|
|
|
|
## Installing requirements
|
|
|
|
If you haven't already installed docker and docker-compose on your computer you can do
|
|
so by following the instructions on https://docs.docker.com/desktop/ and
|
|
https://docs.docker.com/compose/install/.
|
|
|
|
> Docker version 19.03 is the minimum required to build Baserow. It is strongly
|
|
> advised however that you install the latest version of Docker available.
|
|
> Please check that your docker is up to date by running `docker -v`.
|
|
|
|
You will also need git installed which you can do by following the instructions on
|
|
https://www.linode.com/docs/development/version-control/how-to-install-git-on-linux-mac-and-windows/
|
|
.
|
|
|
|
Once you have finished installing all the required software you should be able to run
|
|
the following commands in your terminal.
|
|
|
|
```bash
|
|
$ docker -v
|
|
Docker version 20.10.6, build 370c289
|
|
$ docker-compose -v
|
|
docker-compose version 1.26.2, build eefe0d31
|
|
$ git --version
|
|
git version 2.24.3 (Apple Git-128)
|
|
```
|
|
|
|
If all commands return something similar as described in the example, then you are ready
|
|
to proceed!
|
|
|
|
## Starting the dev environment
|
|
|
|
> If you run into any issues starting your development environment feel free to contact
|
|
> us via the form on https://baserow.io/contact.
|
|
|
|
For example purposes I have created a directory in my home folder named `baserow`. You
|
|
can of course follow the steps in any directory, but in this tutorial I will assume the
|
|
working directory is `~/baserow`.
|
|
|
|
First we have to clone the repository. Execute the following commands to clone the
|
|
master branch. If you are not familiar with git clone, this will download a copy of
|
|
Baserow's code to your computer.
|
|
|
|
```
|
|
$ cd ~/baserow
|
|
$ git clone --branch master https://gitlab.com/baserow/baserow.git
|
|
Cloning into 'baserow'...
|
|
...
|
|
$ cd baserow
|
|
```
|
|
|
|
Now that we have our copy of the repo and have changed directories to the newly
|
|
created `baserow`, we can bring up the containers. You just have to execute the
|
|
docker-compose command using the `docker-compose.yml` file. It might take a while for
|
|
the command to finish, this is because the images have to be built from scratch.
|
|
|
|
```
|
|
$ ./dev.sh
|
|
Building backend
|
|
...
|
|
Starting db ... done
|
|
Starting redis ... done
|
|
Starting backend ... done
|
|
Starting web-frontend ... done
|
|
```
|
|
|
|
Your dev environment is now running, the database has been automatically migrated for
|
|
you and the baserow templates have been synced. You can now visit http://localhost:3000
|
|
to sign up and login to your Baserow.
|
|
|
|
## Looking at the web api
|
|
|
|
Baserow's backend container exposes a rest API. Find the API spec for your local version
|
|
of Baserow at http://localhost:8000/api/redoc/ . To check that it is working correctly
|
|
when you visit http://localhost:8000/api/workspaces/ in a browser you should see the error
|
|
"Authentication credentials were not provided." as no JWT was provided.
|
|
|
|
## Attaching to the dev environment
|
|
|
|
The dev environment consists of a number of docker containers, see:
|
|
|
|
If you use `./dev.sh` by default it will attempt to open tabs in your terminal and
|
|
attach to the running baserow containers. Otherwise you can do so manually by running
|
|
the following commands:
|
|
|
|
```bash
|
|
$ # Run the commands below to connect to the various different parts of Baserow
|
|
$ docker attach backend
|
|
$ docker attach celery
|
|
$ docker attach web-frontend
|
|
```
|
|
|
|
When attached you can press CTRL-C to end the current containers main process. However
|
|
unlike normal docker containers this one will not exit immediately but instead present
|
|
you with a bash terminal. In this terminal you can then run any admin commands you wish
|
|
or inspect the state of the containers. Simply press up and go through the containers
|
|
bash history to get the original command to restart the containers main process.
|
|
|
|
## Other useful commands
|
|
|
|
Below is a quick example of some of the more common useful operations and commands:
|
|
|
|
```bash
|
|
$ # View the logs
|
|
$ docker-compose logs
|
|
$ # Migrate
|
|
$ ./dev.sh run backend manage migrate
|
|
$ # Restart and Build
|
|
$ ./dev.sh restart --build
|
|
```
|
|
|
|
## Keep the servers running
|
|
|
|
Both the web-frontend and backend containers need to keep running while you are
|
|
developing. They also monitor file changes and update automatically, so you don't need
|
|
to worry about reloading. Go and make some changes yourself. You should see the result
|
|
right away.
|
|
|
|
## Working with Docker and Django
|
|
|
|
For further reading on how to work with docker containers and django check out:
|
|
|
|
- [django's getting started tutorial](https://docs.djangoproject.com/en/3.1/intro/tutorial01/)
|
|
- [docker's getting started tutorial](https://docs.docker.com/get-started/)
|
|
- [docker's cli reference](https://docs.docker.com/engine/reference/run/)
|
|
- [docker composes reference](https://docs.docker.com/compose/)
|
|
|
|
## Baserow further reading
|
|
|
|
- See [introduction](../technical/introduction.md) for more details on Baserow's
|
|
architecture.
|
|
- See [baserow docker api](../technical/baserow-docker-api.md) for more detail on how
|
|
Baserow's docker setup can be used and configured.
|
|
- See [dev.sh](dev_sh.md) for further detail on what dev.sh does and why
|