]> Untitled Git - lemmy.git/commitdiff
Improve documentation for local development
authorFelix Ableitner <me@nutomic.com>
Tue, 9 Jun 2020 23:13:51 +0000 (01:13 +0200)
committerFelix Ableitner <me@nutomic.com>
Thu, 11 Jun 2020 13:04:20 +0000 (15:04 +0200)
docs/src/contributing_local_development.md

index e823c9d1b8cc18704b633c80bd66f1aecd33bdbf..f801caf329df03ff8f12cb75d45eca4d80b9d384 100644 (file)
@@ -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
-./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
-psql -c "create user lemmy with password 'password' superuser;" -U postgres
-psql -c 'create database lemmy with owner lemmy;' -U postgres
+#### Setup postgresql
+```
+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
+# or execute server/db-init.sh
 ```
 
-#### Running
-
-```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 a local development instance
 ```
+# 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).