* feat(web): SPA * chore: remove unnecessary prune * feat(web): merge with immich-server * Correct method name * fix: bugs, docs, workflows, etc. * chore: keep dockerignore for dev * chore: remove license * fix: expose 2283 --------- Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2.8 KiB
| sidebar_position |
|---|
| 2 |
Setup
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
5432so 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
- Clone the project repo.
- Run
cp docker/example.env docker/.env. - Edit
docker/.envto provide values for the required variableUPLOAD_LOCATION. - From the root directory, run:
make dev # required Makefile installed on the system.
- 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 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:
- Enter the web directory -
cd web/ - Install web dependencies -
npm i - 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.
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:
{
"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"
}
}