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",