diff --git a/docs/docs/installation/docker-compose-installation.md b/docs/docs/installation/docker-compose-installation.md deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/docs/docs/installation/img/dot-env.png b/docs/docs/installation/img/dot-env.png new file mode 100644 index 0000000000..e47310f36d Binary files /dev/null and b/docs/docs/installation/img/dot-env.png differ diff --git a/docs/docs/installation/img/env-1.png b/docs/docs/installation/img/env-1.png new file mode 100644 index 0000000000..aef15af84b Binary files /dev/null and b/docs/docs/installation/img/env-1.png differ diff --git a/docs/docs/installation/img/env-2.png b/docs/docs/installation/img/env-2.png new file mode 100644 index 0000000000..ba6b6027a3 Binary files /dev/null and b/docs/docs/installation/img/env-2.png differ diff --git a/docs/docs/installation/one-step-installation.md b/docs/docs/installation/one-step-installation.md index e69de29bb2..3ce229bc64 100644 --- a/docs/docs/installation/one-step-installation.md +++ b/docs/docs/installation/one-step-installation.md @@ -0,0 +1,29 @@ +--- +sidebar_position: 2 +--- + +# One-step installation + +:::caution +This method is for evaluation purposes only. It is not recommended for production use. For production usage, please refer to the recommneded installation method [here](/docs/installation/recommended-installation). +::: + +In the shell, from the directory of your choice, run the following command: + +```bash +curl -o- https://raw.githubusercontent.com/immich-app/immich/main/install.sh | bash +``` + +The script will perform the following actions: + +1. Download [docker-compose.yml](https://github.com/immich-app/immich/blob/main/docker/docker-compose.yml), and the [.env](https://github.com/immich-app/immich/blob/main/docker/.env.example) file from the main branch of the [repository](https://github.com/immich-app/immich). +2. Populate the `.env` file with necessary information based on the current directory path. +3. Start the containers. + +The web application will be available at `http://<machine-ip-address>:2283`, and the server URL for the mobile app will be `http://<machine-ip-address>:2283/api` + +The directory which is used to store the backup file is `./immich-app/immich-data` relative to the current directory. + +:::tip +For more information about using the application, please refer to [How to use the application](/docs/category/how-to-use-the-application). +::: \ No newline at end of file diff --git a/docs/docs/installation/portainer-installation.md b/docs/docs/installation/portainer-installation.md index e69de29bb2..3b83d39839 100644 --- a/docs/docs/installation/portainer-installation.md +++ b/docs/docs/installation/portainer-installation.md @@ -0,0 +1,54 @@ +--- +sidebar_position: 4 +--- + +# Portainer + +Install Immich using Portainer's Stack feature. + +1. Go to "**Stacks**" in the left sidebar. +2. Click on "**Add stack**". +3. Give the stack a name (i.e. Immich), and select "**Web Editor**" as the build method. +4. Copy the content of the `docker-compose.yml` file from the [GitHub repository](https://raw.githubusercontent.com/immich-app/immich/main/docker/docker-compose.yml) +5. Replace `.env` with `.stack.env` for all containers that need to use environment variables in the web editor. + +<img + src={require('./img/dot-env.png').default} + width="50%" + style={{border: '1px solid #ddd'}} + alt="Dot Env Example" +/> + +8. Click on "**Advanced Mode**" in the **Environment Variables** section. + +<img + src={require('./img/env-1.png').default} + width="50%" + style={{border: '1px solid #ddd'}} + alt="Dot Env Example" +/> + +9. Copy the content of the `.env.example` file from the [GitHub repository](https://raw.githubusercontent.com/immich-app/immich/main/docker/.env.example) and paste to the editor. +10. Switch back to "**Simple Mode**". + +<img + src={require('./img/env-2.png').default} + width="50%" + style={{border: '1px solid #ddd'}} + alt="Dot Env Example" +/> + +* Populate custom database information if necessary. +* Populate `UPLOAD_LOCATION` as prefered location for storing backup assets. +* Populate a secret value for `JWT_SECRET`, you can use the command below to generate a secured key + +```bash title="Generate secure JWT_SECRET key" +openssl rand -base64 128 +``` + +11. Click on "**Deploy the stack**". + + +:::tip +For more information about using the application, please refer to [How to use the application](/docs/category/how-to-use-the-application). +::: \ No newline at end of file diff --git a/docs/docs/installation/recommended-installation.md b/docs/docs/installation/recommended-installation.md new file mode 100644 index 0000000000..1a67010598 --- /dev/null +++ b/docs/docs/installation/recommended-installation.md @@ -0,0 +1,120 @@ +--- +sidebar_position: 3 +--- + + +# Recommended installation + +This is the recommended installation method for production use. + +### Step 1 - Download the required files + +From a directory of your choice (e.g. `./immich-app`) run the following commands + +```bash title="Get docker-compose.yml file" +wget https://raw.githubusercontent.com/immich-app/immich/main/docker/docker-compose.yml +``` + +```bash title="Get .env file" +wget -O .env https://raw.githubusercontent.com/immich-app/immich/main/docker/.env.example +``` + +### Step 2 - Populate the .env file with custom values + +<details> + +<summary>Example <code>.env</code> content</summary> + +```bash +################################################################################### +# Database +################################################################################### + +DB_HOSTNAME=immich_postgres +DB_USERNAME=postgres +DB_PASSWORD=postgres +DB_DATABASE_NAME=immich + +# Optional Database settings: +# DB_PORT=5432 + +################################################################################### +# Redis +################################################################################### + +REDIS_HOSTNAME=immich_redis + +# Optional Redis settings: +# REDIS_PORT=6379 +# REDIS_DBINDEX=0 +# REDIS_PASSWORD= +# REDIS_SOCKET= + +################################################################################### +# Upload File Config +################################################################################### + +UPLOAD_LOCATION=absolute_location_on_your_machine_where_you_want_to_store_the_backup + +################################################################################### +# Log message level - [simple|verbose] +################################################################################### + +LOG_LEVEL=simple + +################################################################################### +# JWT SECRET +################################################################################### + +# This JWT_SECRET is used to sign the authentication keys for user login +# You should set it to a long randomly generated value +# You can use this command to generate one: openssl rand -base64 128 +JWT_SECRET=kWPdavjCECB0yoXgUHA/vpwpIKdCi/4ODVLIOe9WIi6AQlFfjWEuIVhWT3DtJE+T +CTckJnpwGgSK5AoqD+A8DZKsHCRdfVnlQIVqqmyR8isZTcxL5DWYQUSDRzyOO5OA +ZRUTE63FxiYhrRoe/y1yr5mV1osGy6mm6NZW8T2Tjwc= + +################################################################################### +# Reverse Geocoding +#################################################################################### + +# DISABLE_REVERSE_GEOCODING=false + +# Reverse geocoding is done locally which has a small impact on memory usage +# This memory usage can be altered by changing the REVERSE_GEOCODING_PRECISION variable +# This ranges from 0-3 with 3 being the most precise +# 3 - Cities > 500 population: ~200MB RAM +# 2 - Cities > 1000 population: ~150MB RAM +# 1 - Cities > 5000 population: ~80MB RAM +# 0 - Cities > 15000 population: ~40MB RAM + +# REVERSE_GEOCODING_PRECISION=3 + +#################################################################################### +# WEB - Optional +#################################################################################### + +# Custom message on the login page, should be written in HTML form. +# For example PUBLIC_LOGIN_PAGE_MESSAGE="This is a demo instance of Immich.<br><br>Email: <i>demo@demo.de</i><br>Password: <i>demo</i>" + +PUBLIC_LOGIN_PAGE_MESSAGE="My Family Photos and Videos Backup Server" +``` + +</details> + +* Populate custom database information if necessary. +* Populate `UPLOAD_LOCATION` as prefered location for storing backup assets. +* Populate a secret value for `JWT_SECRET`, you can use the command below to generate a secured key + +```bash title="Command to generate secure JWT_SECRET key" +openssl rand -base64 128 +``` + +### Step 3 - Start the containers + +```bash title="Start the containers using docker compose command" +docker-compose up -d # or `docker compose up -d` based on your docker-compose version +``` + +:::tip +For more information about using the application, please refer to [How to use the application](/docs/category/how-to-use-the-application). +::: \ No newline at end of file diff --git a/docs/docs/installation/requirements.md b/docs/docs/installation/requirements.md index e69de29bb2..f1e5d09d46 100644 --- a/docs/docs/installation/requirements.md +++ b/docs/docs/installation/requirements.md @@ -0,0 +1,31 @@ +--- +sidebar_position: 1 +--- + + +# Requirements +Hardware and software requirement for Immich + +## Software + +- [Docker](https://docs.docker.com/get-docker/) +- [Docker Compose](https://docs.docker.com/compose/install/) + +:::info Podman +You can also use Podman to run the application, however, additional configurations might required on your end. +::: + +## Hardware + +- **OS**: Preferred unix-based operating system (Ubuntu, Debian, MacOS...etc). Windows works too with [Docker Desktop on Windows](https://docs.docker.com/desktop/install/windows-install/) +- **Ram**: At least 2GB, preferred 4GB. +- **Core**: At least 2 cores, preferred 4 cores. + +## Installation methods + +There are a couple installation method that you can use to install the application. You can choose the one that suits you the best. + +1. [One-step installation (Evaluation only)](/docs/installation/one-step-installation) +2. **[Docker Compose with manual configuration (Recommended)](/docs/installation/recommended-installation)** +3. [Portainer](/docs/installation/portainer-installation) +4. [Unraid (Community contribution)](/docs/installation/unraid-installation) diff --git a/docs/docs/installation/unraid-installation.md b/docs/docs/installation/unraid-installation.md index e69de29bb2..fcbd7635d0 100644 --- a/docs/docs/installation/unraid-installation.md +++ b/docs/docs/installation/unraid-installation.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 5 +--- + +# Unraid + +Install Immich on Unraid. + +:::info Community contribution +Please follow this community contributed [article](https://mfaz.dev/posts/immich-unraid/) to install Immich on Unraid. +::: \ No newline at end of file diff --git a/docs/docs/usage/_category_.json b/docs/docs/usage/_category_.json index 4171a23b57..4e3bb19af3 100644 --- a/docs/docs/usage/_category_.json +++ b/docs/docs/usage/_category_.json @@ -1,8 +1,8 @@ { - "label": "How to use the app", + "label": "How to use the application", "position": 3, "link": { "type": "generated-index", - "description": "5 minutes to learn the most important Docusaurus concepts." + "description": "Quick start on how to use the app on mobile and the web" } } diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index f8444db398..5a65d5899b 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -57,16 +57,23 @@ const config = { themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ ({ + announcementBar: { + id: "site_announcement_immich", + content: `⚠️ The project is under <strong>very active</strong> 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, + }, docs: { sidebar: { autoCollapseCategories: false, }, }, navbar: { - title: "Immich Documentation", logo: { alt: "Immich University Logo", - src: "img/logo.png", + src: "img/color-logo.png", + srcDark: "img/logo.png", }, items: [ { @@ -83,7 +90,7 @@ const config = { ], }, footer: { - style: "dark", + style: "light", links: [ { title: "Overview", @@ -121,7 +128,7 @@ const config = { ], }, ], - copyright: `Alex Tran - For my family`, + copyright: `Immich is available as open source under the terms of the MIT License.`, }, prism: { theme: lightCodeTheme, diff --git a/docs/static/img/color-logo.png b/docs/static/img/color-logo.png new file mode 100644 index 0000000000..30004c54a0 Binary files /dev/null and b/docs/static/img/color-logo.png differ