mirror of
https://github.com/LemmyNet/lemmy
synced 2024-11-23 13:03:11 +00:00
Improve documentation for local development
This commit is contained in:
parent
a13e9fe395
commit
de0fb631df
1 changed files with 50 additions and 20 deletions
70
docs/src/contributing_local_development.md
vendored
70
docs/src/contributing_local_development.md
vendored
|
@ -1,31 +1,61 @@
|
||||||
#### Requirements
|
### Ubuntu
|
||||||
|
|
||||||
- [Rust](https://www.rust-lang.org/)
|
|
||||||
- [Yarn](https://yarnpkg.com/en/)
|
|
||||||
- [Postgres](https://www.postgresql.org/)
|
|
||||||
|
|
||||||
#### Set up Postgres DB
|
#### Build requirements:
|
||||||
|
```
|
||||||
|
sudo apt install git cargo libssl-dev pkg-config libpq-dev yarn curl gnupg2 git
|
||||||
|
# install yarn
|
||||||
|
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
|
||||||
|
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
|
||||||
|
sudo apt update && sudo apt install yarn
|
||||||
|
```
|
||||||
|
|
||||||
```bash
|
#### Get the source code
|
||||||
|
```
|
||||||
|
git clone https://github.com/LemmyNet/lemmy.git
|
||||||
|
# or alternatively from gitea
|
||||||
|
# git clone https://yerbamate.dev/LemmyNet/lemmy.git
|
||||||
|
```
|
||||||
|
|
||||||
|
All the following commands need to be run either in `lemmy/server` or `lemmy/ui`, as indicated
|
||||||
|
by the `cd` command.
|
||||||
|
|
||||||
|
#### Build the backend (Rust)
|
||||||
|
```
|
||||||
cd server
|
cd server
|
||||||
./db-init.sh
|
cargo build
|
||||||
|
# for development, use `cargo check` instead)
|
||||||
```
|
```
|
||||||
|
|
||||||
Or run the commands manually:
|
#### Build the frontend (Typescript)
|
||||||
|
```
|
||||||
|
cd ui
|
||||||
|
yarn
|
||||||
|
yarn build
|
||||||
|
```
|
||||||
|
|
||||||
```bash
|
#### Setup postgresql
|
||||||
psql -c "create user lemmy with password 'password' superuser;" -U postgres
|
```
|
||||||
psql -c 'create database lemmy with owner lemmy;' -U postgres
|
sudo apt install postgresql
|
||||||
|
sudo systemctl start postgresql
|
||||||
|
# initialize postgres database
|
||||||
|
sudo -u postgres psql -c "create user lemmy with password 'password' superuser;" -U postgres
|
||||||
|
sudo -u postgres psql -c 'create database lemmy with owner lemmy;' -U postgres
|
||||||
export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy
|
export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy
|
||||||
|
# or execute server/db-init.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Running
|
#### Run a local development instance
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone https://github.com/LemmyNet/lemmy
|
|
||||||
cd lemmy
|
|
||||||
./install.sh
|
|
||||||
# For live coding, where both the front and back end, automagically reload on any save, do:
|
|
||||||
# cd ui && yarn start
|
|
||||||
# cd server && cargo watch -x run
|
|
||||||
```
|
```
|
||||||
|
# run each of these in a seperate terminal
|
||||||
|
cd server && cargo run
|
||||||
|
ui & yarn start
|
||||||
|
```
|
||||||
|
|
||||||
|
Then open [localhost:4444](http://localhost:4444) in your browser. It will auto-refresh if you edit
|
||||||
|
any frontend files. For backend coding, you will have to rerun `cargo run`. You can use
|
||||||
|
`cargo check` as a faster way to find compilation errors.
|
||||||
|
|
||||||
|
Note that this setup doesn't include image uploads or link previews (provided by pict-rs and
|
||||||
|
iframely respectively). If you want to test those, you should use the
|
||||||
|
[Docker development](contributing_docker_development.md).
|
||||||
|
|
Loading…
Reference in a new issue