Files
immich/docs/docs/developer/setup.md
aviv926 df4af025d7 Edit and update of FAQ+new database GUI guide (#5958)
* Update added and re -arrangement of FAQ

* Erasure of addition mistakes

* Erasure of addition mistakes

* Fix broken links

* Correcting spelling errors + adding more questions

* New required fixes

* More FAQ

* Adding questions + adding a note about a directory and an explanation about adding a path in a Windows environment

* Update docs/docs/FAQ/Albums-FAQ.md

Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>

* Update docs/docs/FAQ/Assets-FAQ.md

Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>

* Update docs/docs/FAQ/Machine-Learning-FAQ.md

Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>

* Update docs/docs/FAQ/Machine-Learning-FAQ.md

Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>

* Update docs/docs/features/libraries.md

Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>

* Corrections

* chore: updates

* import TOCinlines from all FAQ pages to one page + Corrections

* Removing privacy information + adding required Flutter version information

* Removing privacy information + adding required Flutter version information

* Revert "Removing privacy information + adding required Flutter version information"

This reverts commit da63439fd2.

* All in one page

* Guide - Remove Offline Files

* Guide - Remove Offline Files

* doc: updates

* chore: fix broken link

* docs: clean up database gui guide

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-01-12 14:45:41 -05:00

3.5 KiB

sidebar_position
sidebar_position
2

Setup

:::note If there's a feature you're planning to work on, just give us a heads up in Discord so we can:

  1. Let you know if it's something we would accept into Immich
  2. Provide any guidance on how something like that would ideally be implemented
  3. Ensure nobody is already working on that issue/feature so we don't duplicate effort

Thanks for being interested in contributing 😊 :::

Environment

Server and web app

This environment includes the following services:

  • Core server - /server/src/immich
  • Machine learning - /machine-learning
  • Microservices - /server/src/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.

Instructions

  1. Clone the project repo.
  2. Run cp docker/example.env docker/.env.
  3. Edit docker/.env to provide values for the required variable UPLOAD_LOCATION.
  4. From the root directory, run:
make dev # required Makefile installed on the system.
  1. Access the dev instance in your browser at http://localhost:2283, or connect via the mobile app.

All the services will be started with hot-reloading enabled for a quick feedback loop.

You can access the web from http://your-machine-ip:2283 or http://localhost:2283 and access the server from the mobile app at http://your-machine-ip:2283/api

Mobile app

The mobile app (/mobile) will required Flutter toolchain 3.13.x to be installed on your system.

Please refer to the Flutter's official documentation for more information on setting up the toolchain on your machine.

Connect to a remote backend

If you only want to do web development connected to an existing, remote backend, follow these steps:

  1. Enter the web directory - cd web/
  2. Install web dependencies - npm i
  3. Start the web development server
IMMICH_SERVER_URL=https://demo.immich.app/api npm run dev

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.

Dart Code Metris

The mobile app uses DCM (Dart Code Metrics) for linting and metrics calculation. Please refer to the Getting Started page for more information on setting up DCM

Note: Activating the license is not required.

VSCode

Install Flutter, DCM, Prettier, ESLint and Svelte extensions.

in User settings.json (cmd + shift + p and search for Open User Settings JSON) add the following:

{
  "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"
  }
}