📝 Add macOS-specific instructions for local development. (#996)

* 📝 Add macOS-specific instructions for local development.

* 📝 Remove extra 'git' package installation instruction
This commit is contained in:
jcfrancisco 2020-07-20 10:03:15 -04:00 committed by GitHub
parent 3342a6a910
commit 1a421e96d7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,16 +1,26 @@
### Ubuntu ### Install build requirements
#### Ubuntu
#### Build requirements:
``` ```
sudo apt install git cargo libssl-dev pkg-config libpq-dev yarn curl gnupg2 git sudo apt install git cargo libssl-dev pkg-config libpq-dev yarn curl gnupg2
# install yarn # install yarn
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - 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 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 sudo apt update && sudo apt install yarn
``` ```
#### Get the source code #### macOS
Install Rust using [the recommended option on rust-lang.org](https://www.rust-lang.org/tools/install) (rustup).
Then, install [Homebrew](https://brew.sh/) if you don't already have it installed.
Finally, install Node and Yarn.
```
brew install node yarn
```
### Get the source code
``` ```
git clone https://github.com/LemmyNet/lemmy.git git clone https://github.com/LemmyNet/lemmy.git
# or alternatively from gitea # or alternatively from gitea
@ -20,36 +30,49 @@ git clone https://github.com/LemmyNet/lemmy.git
All the following commands need to be run either in `lemmy/server` or `lemmy/ui`, as indicated All the following commands need to be run either in `lemmy/server` or `lemmy/ui`, as indicated
by the `cd` command. by the `cd` command.
#### Build the backend (Rust) ### Build the backend (Rust)
``` ```
cd server cd server
cargo build cargo build
# for development, use `cargo check` instead) # for development, use `cargo check` instead)
``` ```
#### Build the frontend (Typescript) ### Build the frontend (Typescript)
``` ```
cd ui cd ui
yarn yarn
yarn build yarn build
``` ```
#### Setup postgresql ### Setup postgresql
#### Ubuntu
``` ```
sudo apt install postgresql sudo apt install postgresql
sudo systemctl start postgresql sudo systemctl start postgresql
# initialize postgres database
# Either execute server/db-init.sh, or manually initialize the postgres database:
sudo -u postgres psql -c "create user lemmy with password 'password' superuser;" -U postgres 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 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
``` ```
#### Run a local development instance #### macOS
```
brew install postgresql
brew services start postgresql
/usr/local/opt/postgres/bin/createuser -s postgres
# Either execute server/db-init.sh, or manually initialize the postgres database:
psql -c "create user lemmy with password 'password' superuser;" -U postgres
psql -c 'create database lemmy with owner lemmy;' -U postgres
export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy
```
### Run a local development instance
``` ```
# run each of these in a seperate terminal # run each of these in a seperate terminal
cd server && cargo run cd server && cargo run
ui & yarn start cd ui && yarn start
``` ```
Then open [localhost:4444](http://localhost:4444) in your browser. It will auto-refresh if you edit Then open [localhost:4444](http://localhost:4444) in your browser. It will auto-refresh if you edit