* Logseq A privacy-first, open-source platform for knowledge sharing and management. ** Website https://logseq.com ** Set up development environment If you are on Windows, use the [[#windows-setup][Windows setup]]. *** 1. Requirements - [[https://clojure.org/guides/getting_started][Java & Clojure]] - [[https://www.postgresql.org/download/][PostgreSQL]] - [[https://nodejs.org/en/][Node.js]] *** 2. Create a GitHub app: Follow the guide at https://docs.github.com/en/free-pro-team@latest/developers/apps/creating-a-github-app, where the user authorization "Callback URL" should be =http://localhost:3000/auth/github=. Remember to download the ~private-key.pem~ which will be used for the next step. *** 3. Set up PostgreSQL Make sure you have PostgreSQL running. You can check if it's running with ~pg_ctl -D /usr/local/var/postgres status~ and use ~pg_ctl -D /usr/local/var/postgres start~ to start it up. You'll also need to make a Logseq DB in PostgreSQL. Do that with ~createdb logseq~. *** 4. Add environment variables #+BEGIN_SRC sh export ENVIRONMENT="dev" export JWT_SECRET="4fa183cf1d28460498b13330835e80ab" export COOKIE_SECRET="10a42ca724e34f4db6086a772d787030" export DATABASE_URL="postgres://localhost:5432/logseq" export GITHUB_APP2_ID="78728" export GITHUB_APP2_KEY="xxxxxxxxxxxxxxxxxxxx" export GITHUB_APP2_SECRET="xxxxxxxxxxxxxxxxxxxx" # Replace your-code-directory and your-app.private-key.pem with yours export GITHUB_APP_PEM="/your-code-directory/your-app.private-key.pem" export LOG_PATH="/tmp/logseq" export PG_USERNAME="xxx" export PG_PASSWORD="xxx" #+END_SRC *** 5. Compile to JavaScript #+BEGIN_SRC sh cd web yarn yarn watch #+END_SRC *** 6. Start the Clojure server 1. Download jar Go to https://github.com/logseq/logseq-internal/releases, download the =logseq.jar= and move it to the =resources= directory. 2. Run jar #+BEGIN_SRC sh cd resources java -Duser.timezone=UTC -jar logseq.jar #+END_SRC *** 7. Open the browser Open [[http://localhost:3000]]. ** Windows setup *** 1. Required software Install Clojure through scoop-clojure: https://github.com/littleli/scoop-clojure. You can also install [[https://nodejs.org/en/][Node.js]], [[https://yarnpkg.com/][Yarn]] and [[https://www.postgresql.org/download/][PostgreSQL]] through scoop if you want to. *** 2. Create a GitHub app Follow [[#2-create-a-github-app][Step 2]] above if you want Logseq to connect to GitHub. If not, skip this section. The ~GITHUB_APP_PEM~ variable in the ~run-windows.bat~ needs to be set with the correct directory for your system. *** 3. Set up PostgreSQL Make sure you have PostgreSQL running. You can check if it's running with ~pg_ctl status~ and use ~pg_ctl start~ to start it up. You'll also need to make a Logseq DB in PostgreSQL. Do that with ~createdb logseq~. *** 4. Download the Clojure server Go to https://github.com/logseq/logseq-internal/releases, download the =logseq.jar= and move into the root directory of repo. *** 5. Start Logseq Run ~start-windows.bat~ which is located in the repo. This will open a second terminal that runs Logseq's backend server. To completely stop Logseq, you'll need to also close that second terminal that was opened. ~start-windows.bat~ will try to start PostgreSQL for you if it's not already started.