diff --git a/docs/docs/contribution-guidelines.md b/docs/docs/contribution-guidelines.md
index dd776a23dd..5e1cdbfb4a 100644
--- a/docs/docs/contribution-guidelines.md
+++ b/docs/docs/contribution-guidelines.md
@@ -2,4 +2,81 @@
sidebar_position: 5
---
-# Contribution Guidelines
\ No newline at end of file
+# Contribution guidelines
+
+## Environment setup
+
+### Server and web app
+
+This environment includes the following services:
+
+- Core server - `/server/apps/immich`
+- Machine learning - `/machine-learning`
+- Microservices - `/server/apps/microservicess`
+- Web app - `/web`
+- Redis
+- PostgreSQL development database with exposed port `5432` so you can use any database client to acess it
+- NGINX Proxy - `nginx/nginx.conf`
+
+All the services are packaged to run as with single Docker Compose command.
+
+After cloning the project, from the root directory run
+
+```bash title="Start development server"
+make dev # required Makefile installed on the system.
+```
+
+All the services will be started with hot-reloading enabled for a quick feedback loop.
+
+### Mobile app
+
+The mobile app `(/mobile)` will required Flutter toolchain to be installed on your system.
+
+Please refer to the [Flutter's official documentation](https://flutter.dev/docs/get-started/install) for more information on setting up the toolchain on your machine.
+
+## IDE setup
+
+### Lint / format extensions
+
+Setting these in the IDE give a better developer experience auto-formatting code on save and providing instant feedback on lint issues.
+
+### VSCode
+
+Install `Flutter`, `Prettier`, `ESLint` and `Svelte` extensions.
+
+in User `settings.json` (`cmd + shift + p` and search for `Open User Settings JSON`) add the following:
+
+```json title="settings.json"
+{
+ "editor.formatOnSave": true,
+ "[javascript][typescript][css]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
+ "editor.tabSize": 2,
+ "editor.formatOnSave": true
+ },
+ "[svelte]": {
+ "editor.defaultFormatter": "svelte.svelte-vscode",
+ "editor.tabSize": 2
+ },
+ "svelte.enable-ts-plugin": true,
+ "eslint.validate": ["javascript", "svelte"],
+ "[dart]": {
+ "editor.formatOnSave": true,
+ "editor.selectionHighlight": false,
+ "editor.suggest.snippetsPreventQuickSuggestions": false,
+ "editor.suggestSelection": "first",
+ "editor.tabCompletion": "onlySnippets",
+ "editor.wordBasedSuggestions": false,
+ "editor.defaultFormatter": "Dart-Code.dart-code"
+ }
+}
+```
+
+## OpenAPI generator
+
+OpenAPI is used to generate the client (Typescript, Dart) SDK. `openapi-generator-cli` can be installed [here](https://openapi-generator.tech/docs/installation/). When you add a new or modify an existing endpoint, you must run the command below to update the client SDK.
+
+```bash
+npm run api:generate # Run from the `server` directory
+```
+You can find the generated client SDK in the `web/src/api` for Typescript SDK and `mobile/openapi` for Dart SDK.
\ No newline at end of file
diff --git a/docs/docs/mobile-app-beta-program.md b/docs/docs/mobile-app-beta-program.md
index 68428bfc13..9a431481c0 100644
--- a/docs/docs/mobile-app-beta-program.md
+++ b/docs/docs/mobile-app-beta-program.md
@@ -3,7 +3,7 @@ sidebar_position: 4
---
-# Mobile App Beta Program
+# Mobile app Beta program
Join the beta release channel to test the latest update of the app
diff --git a/docs/docs/usage/update.md b/docs/docs/usage/update.md
new file mode 100644
index 0000000000..b5ea57f3a7
--- /dev/null
+++ b/docs/docs/usage/update.md
@@ -0,0 +1,11 @@
+---
+sidebar_position: 4
+---
+
+# Update the application
+
+If you are using Docker Compose, to update the application use the following commands in the directory where the `docker-compose.yml` file is located:
+
+```bash title="Update Immich"
+docker-compose pull && docker-compose up -d # Or `docker compose`
+```
\ No newline at end of file
diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js
index 5d1379f3a0..2c217a5f25 100644
--- a/docs/docusaurus.config.js
+++ b/docs/docusaurus.config.js
@@ -42,10 +42,10 @@ const config = {
// Remove this to remove the "edit this page" links.
editUrl: "https://github.com/immich-app/immich/tree/main/docs/",
},
- blog: {
- showReadingTime: true,
- editUrl: "https://github.com/immich-app/immich/tree/main/docs/",
- },
+ // blog: {
+ // showReadingTime: true,
+ // editUrl: "https://github.com/immich-app/immich/tree/main/docs/",
+ // },
theme: {
customCss: require.resolve("./src/css/custom.css"),
},
@@ -58,7 +58,7 @@ const config = {
({
announcementBar: {
id: "site_announcement_immich",
- content: `⚠️ The project is under very active development. Expect bugs and changes. Do not use as a single source to store of your photos and videos!`,
+ content: `⚠️ The project is under very active development. Expect bugs and changes. Do not use as a single source to store of your photos and videos!`,
backgroundColor: "#593f00",
textColor: "#ffefc9",
isCloseable: false,
@@ -80,7 +80,7 @@ const config = {
position: "right",
label: "Documentation",
},
- { to: "/blog", label: "Blog", position: "right" },
+ // { to: "/blog", label: "Blog", position: "right" },
{
href: "https://github.com/immich-app/immich",
label: "GitHub",