--- type: ressource date: 2025-02-18T10:25 maturity: graine --- ``` sudo apt install btop sudo ubuntu-drivers autoinstall ``` # Installing ZSH ## Zsh ```sh sudo apt install git fonts-font-awesome sudo apt install zsh chsh -s $(which zsh) echo $SHELL ``` [Installing ZSH · ohmyzsh/ohmyzsh Wiki · GitHub](https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH) ## Oh-my-zsh ### Install ```sh sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)" ``` ### Plugins ```sh git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting nvim ~/.zshrc ``` add : ```.zshrc plugins=(git zsh-autosuggestions zsh-syntax-highlighting) ``` ### Themes ```sh git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k nvim ~/.zshrc ``` ``` ZSH_THEME="`powerlevel10k/powerlevel10k`" ``` redémarrer zsh et suivre la configuration de powerlever10k Source : [Install and Setup ZSH on Ubuntu Linux](https://itsfoss.com/zsh-ubuntu/) # Docker and Docker Compose ## Install Prerequisite Packages Install the necessary packages to allow apt to use a repository over HTTPS. ```bash sudo apt update && sudo apt upgrade sudo apt install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common \ gnupg ``` ## Add Docker’s Official GPG Key Add Docker’s official GPG key to your system to ensure the authenticity of the packages. ```bash curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg ``` ## Set Up the Docker Repository Add the Docker repository to APT sources. ```bash echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` ## Install Docker Update the package index again and install Docker. ```bash sudo apt install docker-ce docker-ce-cli containerd.io ``` ## Verify Docker Installation Check if Docker is installed correctly by running the `hello-world` image. ```bash sudo docker run hello-world ``` ## Install Docker Compose Download the current stable release of Docker Compose. ```bash DOCKER_COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d') sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose ``` ## Apply Executable Permissions to the Docker Compose Binary Make the Docker Compose binary executable. ```bash sudo chmod +x /usr/local/bin/docker-compose ``` ## Verify Docker Compose Installation Check the version of Docker Compose to verify the installation. ```bash docker-compose --version ``` ## Create docker group 1. Add your user to the `docker` group: ```bash sudo usermod -aG docker $USER ``` 2. Log out and log back in, or use the `newgrp` command: ```bash newgrp docker ``` 3. Verify that your user is now part of the `docker` group: ```bash groups ``` You should see `docker` listed in the output. 4. Try running the Docker Compose command again: ```bash docker compose up traefik ``` If you still encounter issues, ensure that the Docker daemon is running and accessible: ```bash sudo systemctl status docker ``` ## Create docker networks To create the external networks `web` and `internal`, you need to manually create them using the Docker CLI before running your `docker-compose` command. Here are the steps: 5. Create the `web` network: ```bash docker network create web ``` 6. Create the `internal` network: ```bash docker network create internal ``` After creating these networks, you can run your `docker-compose` command without encountering errors related to missing networks. ```bash docker compose up traefik ``` # Mount remote directories SSHFS : ```sh sudo sshfs -o IdentityFile=~/.ssh/id_rsa -o allow_other -o reconnect gribse@217.128.128.22:/media/md0 /mnt/nestor-v3 ``` NFS / CIFS : ```sh sudo mount -t cifs //192.168.1.68/gribse -w -o username=gribse,password="a8t*wN3gx&akd0%tNjrdGtL4c0jy75kL",uid=gribse /mnt/TNAS ``` To ensure that these directories are mounted at startup, you can add entries to the fstab file. Here are the steps: ```sh sudo nano /etc/fstab ``` 2. **Add the SSHFS entry**: Add the following line to mount the SSHFS directory at startup: ```plaintext gribse@217.128.128.22:/media/md0 /mnt/nestor-v3 fuse.sshfs IdentityFile=/home/gribse/.ssh/id_rsa,allow_other,reconnect 0 0 ``` 3. **Add the CIFS entry**: Add the following line to mount the CIFS directory at startup: ```plaintext //192.168.1.68/gribse /mnt/TNAS cifs username=gribse,password=a8t*wN3gx&akd0%tNjrdGtL4c0jy75kL,uid=gribse 0 0 ``` 4. **Save and exit**: Save the changes and exit the text editor (in nano, press `Ctrl+X`, then `Y`, and `Enter`). 5. **Test the fstab entries**: Test the new entries by running: ```bash sudo mount -a ``` ### Example fstab file: ``` # gribse@217.128.128.22:/media/md0 /mnt/nestor-v3 fuse.sshfs IdentityFile=/home/gribse/.ssh/id_rsa,allow_other,reconnect 0 0 //192.168.1.68/gribse /mnt/TNAS cifs username=gribse,password=a8t*wN3gx&akd0%tNjrdGtL4c0jy75kL,uid=gribse 0 0 ``` This will ensure that the SSHFS and CIFS directories are mounted automatically at startup. # Installing Immich ## Transfer data - [ ] is tsdata needed ? - [ ] is pgdata needed ? - [ ] import library - [ ] ftp - [ ] - [ ] choose storage tempate - [ ] spécifier uplads/library différent de iploads/thumbs, etc ? pour economiser bande passante et unsiquement stoquer els images sur TNAS ## Configure - [ ] Rewrite `compose.yml` : [Fetching Title#wk4c](https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml) - cf [Docker Compose \[Recommended\] | Immich](https://immich.app/docs/install/docker-compose/) - [ ] rewrite env - [ ] move env ## Deploy - [ ] stop immich - [ ] rsync v3 -> v4 - [ ] move env - [ ] move pgdata - [ ] move tsdata - [ ] start local immich - [ ] stats prometheus ?