# Instalação e Configuração do ProjecSend

Aplicativo para Upload e Download de arquivos em repositórios

# ProjectSend Docker Instalação

Link: [https://docs.linuxserver.io/images/docker-projectsend/](https://docs.linuxserver.io/images/docker-projectsend/)

[Projectsend](http://www.projectsend.org/) is a self-hosted application that lets you upload files and assign them to specific clients that you create yourself. Secure, private and easy. No more depending on external services or e-mail to send those files.

[![projectsend](http://www.projectsend.org/wp-content/themes/projectsend/img/screenshots.png)](http://www.projectsend.org/)

## Supported Architectures

We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://distribution.github.io/distribution/spec/manifest-v2-2/#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).

Simply pulling `lscr.io/linuxserver/projectsend:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.

The architectures supported by this image are:

<div class="md-typeset__scrollwrap" id="bkmrk-architecture-availab" style="text-align: justify;"><div class="md-typeset__table"><table><thead><tr><th role="columnheader">Architecture</th><th role="columnheader">Available</th><th role="columnheader">Tag</th></tr></thead><tbody><tr><td>x86-64</td><td>✅</td><td>amd64-&lt;version tag&gt;</td></tr><tr><td>arm64</td><td>✅</td><td>arm64v8-&lt;version tag&gt;</td></tr><tr><td>armhf</td><td>❌</td><td> </td></tr></tbody></table>

</div></div>## Application Setup

Requires a user and database in either mysql or mariadb.

To set PHP options like max upload size please edit /config/php/projectsend.ini

To use translations, follow the instructions [here](https://www.projectsend.org/how-to-use-translation-files/). The necessary paths are symlinked under `/config/translations` (note that the "templates" paths don't need `lang` subdirectories).

More info at [ProjectSend](http://www.projectsend.org/).

## Usage

To help you get started creating a container from this image you can either use docker-compose or the docker cli.

Info

Unless a parameter is flaged as 'optional', it is *mandatory* and a value must be provided.

### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))[¶](https://docs.linuxserver.io/images/docker-projectsend/#docker-compose-recommended-click-here-for-more-info "Permanent link")

```
<button class="md-clipboard md-icon" data-clipboard-target="#__code_0 > code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: rgba(0, 0, 0, 0); border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: rgba(226, 228, 233, 0.12); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s; width: 1.5em; z-index: 1;" title="Copy to clipboard"></button>```
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-0-1" id="bkmrk--1" name="__codelineno-0-1"></a>---
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-0-2" id="bkmrk--2" name="__codelineno-0-2"></a>services:
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-0-3" id="bkmrk--3" name="__codelineno-0-3"></a>  projectsend:
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-0-4" id="bkmrk--4" name="__codelineno-0-4"></a>    image: lscr.io/linuxserver/projectsend:latest
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-0-5" id="bkmrk--5" name="__codelineno-0-5"></a>    container_name: projectsend
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-0-6" id="bkmrk--6" name="__codelineno-0-6"></a>    environment:
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-0-7" id="bkmrk--7" name="__codelineno-0-7"></a>      - PUID=1000
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-0-8" id="bkmrk--8" name="__codelineno-0-8"></a>      - PGID=1000
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-0-9" id="bkmrk--9" name="__codelineno-0-9"></a>      - TZ=Etc/UTC
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-0-10" id="bkmrk--10" name="__codelineno-0-10"></a>    volumes:
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-0-11" id="bkmrk--11" name="__codelineno-0-11"></a>      - /path/to/projectsend/config:/config
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-0-12" id="bkmrk--12" name="__codelineno-0-12"></a>      - /path/to/data:/data
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-0-13" id="bkmrk--13" name="__codelineno-0-13"></a>    ports:
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-0-14" id="bkmrk--14" name="__codelineno-0-14"></a>      - 80:80
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-0-15" id="bkmrk--15" name="__codelineno-0-15"></a>    restart: unless-stopped

```
```

### docker cli ([click here for more info](https://docs.docker.com/engine/reference/commandline/cli/))[¶](https://docs.linuxserver.io/images/docker-projectsend/#docker-cli-click-here-for-more-info "Permanent link")

```
<button class="md-clipboard md-icon" data-clipboard-target="#__code_1 > code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: rgba(0, 0, 0, 0); border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: rgba(226, 228, 233, 0.12); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s; width: 1.5em; z-index: 1;" title="Copy to clipboard"></button>```
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-1-1" id="bkmrk--16" name="__codelineno-1-1"></a>docker run -d \
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-1-2" id="bkmrk--17" name="__codelineno-1-2"></a>  --name=projectsend \
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-1-3" id="bkmrk--18" name="__codelineno-1-3"></a>  -e PUID=1000 \
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-1-4" id="bkmrk--19" name="__codelineno-1-4"></a>  -e PGID=1000 \
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-1-5" id="bkmrk--20" name="__codelineno-1-5"></a>  -e TZ=Etc/UTC \
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-1-6" id="bkmrk--21" name="__codelineno-1-6"></a>  -p 80:80 \
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-1-7" id="bkmrk--22" name="__codelineno-1-7"></a>  -v /path/to/projectsend/config:/config \
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-1-8" id="bkmrk--23" name="__codelineno-1-8"></a>  -v /path/to/data:/data \
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-1-9" id="bkmrk--24" name="__codelineno-1-9"></a>  --restart unless-stopped \
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-1-10" id="bkmrk--25" name="__codelineno-1-10"></a>  lscr.io/linuxserver/projectsend:latest

```
```

## Parameters

Containers are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.

### Ports (`-p`)

<div class="md-typeset__scrollwrap" id="bkmrk-parameter-function-8" style="text-align: justify;"><div class="md-typeset__table"><table><thead><tr><th role="columnheader">Parameter</th><th role="columnheader">Function</th></tr></thead><tbody><tr><td>`80:80`</td><td>WebUI</td></tr></tbody></table>

</div></div>### Environment Variables (`-e`)

<div class="md-typeset__scrollwrap" id="bkmrk-env-function-puid%3D10" style="text-align: justify;"><div class="md-typeset__table"><table><thead><tr><th role="columnheader">Env</th><th role="columnheader">Function</th></tr></thead><tbody><tr><td>`PUID=1000`</td><td>for UserID - see below for explanation</td></tr><tr><td>`PGID=1000`</td><td>for GroupID - see below for explanation</td></tr><tr><td>`TZ=Etc/UTC`</td><td>specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List).</td></tr></tbody></table>

</div></div>### Volume Mappings (`-v`)

<div class="md-typeset__scrollwrap" id="bkmrk-volume-function-%2Fcon" style="text-align: justify;"><div class="md-typeset__table"><table><thead><tr><th role="columnheader">Volume</th><th role="columnheader">Function</th></tr></thead><tbody><tr><td>`/config`</td><td>Persistent config files</td></tr><tr><td>`/data`</td><td>Where to store files to share.</td></tr></tbody></table>

</div></div>#### Miscellaneous Options

<div class="md-typeset__scrollwrap" id="bkmrk-parameter-function-%C2%A0" style="text-align: justify;"><div class="md-typeset__table"><table><thead><tr><th role="columnheader">Parameter</th><th role="columnheader">Function</th></tr></thead><tbody><tr><td> </td><td> </td></tr></tbody></table>

</div></div>## Environment variables from files (Docker secrets)

You can set any environment variable from a file by using a special prepend `FILE__`.

As an example:

```
<button class="md-clipboard md-icon" data-clipboard-target="#__code_2 > code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: rgba(0, 0, 0, 0); border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: rgba(226, 228, 233, 0.12); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s; width: 1.5em; z-index: 1;" title="Copy to clipboard"></button>```
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-2-1" id="bkmrk--26" name="__codelineno-2-1"></a>-e FILE__MYVAR=/run/secrets/mysecretvariable

```
```

Will set the environment variable `MYVAR` based on the contents of the `/run/secrets/mysecretvariable` file.

## Umask for running applications

For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional `-e UMASK=022` setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up [here](https://en.wikipedia.org/wiki/Umask) before asking for support.

## User / Group Identifiers

When using volumes (`-v` flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.

Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.

In this instance `PUID=1000` and `PGID=1000`, to find yours use `id your_user` as below:

```
<button class="md-clipboard md-icon" data-clipboard-target="#__code_3 > code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: rgba(0, 0, 0, 0); border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: rgba(226, 228, 233, 0.12); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s; width: 1.5em; z-index: 1;" title="Copy to clipboard"></button>```
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-3-1" id="bkmrk--27" name="__codelineno-3-1"></a>id your_user

```
```

Example output:

```
<button class="md-clipboard md-icon" data-clipboard-target="#__code_4 > code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: rgba(0, 0, 0, 0); border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: rgba(226, 228, 233, 0.12); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s; width: 1.5em; z-index: 1;" title="Copy to clipboard"></button>```
<a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-4-1" id="bkmrk--28" name="__codelineno-4-1"></a>uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)

```
```

## Docker Mods

[![Docker Mods](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=projectsend&query=%24.mods%5B%27projectsend%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=projectsend "view available mods for this container.") [![Docker Universal Mods](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=universal&query=%24.mods%5B%27universal%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=universal "view available universal mods.")

We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.

## Support Info

- Shell access whilst the container is running:
    
    ```
    <button class="md-clipboard md-icon" data-clipboard-target="#__code_5 > code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: rgba(0, 0, 0, 0); border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: rgba(226, 228, 233, 0.12); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s; width: 1.5em; z-index: 1;" title="Copy to clipboard"></button>```
    <a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-5-1" id="bkmrk--29" name="__codelineno-5-1"></a>docker exec -it projectsend /bin/bash
    
    ```
    ```
- To monitor the logs of the container in realtime:
    
    ```
    <button class="md-clipboard md-icon" data-clipboard-target="#__code_6 > code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: rgba(0, 0, 0, 0); border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: rgba(226, 228, 233, 0.12); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s; width: 1.5em; z-index: 1;" title="Copy to clipboard"></button>```
    <a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-6-1" id="bkmrk--30" name="__codelineno-6-1"></a>docker logs -f projectsend
    
    ```
    ```
- Container version number:
    
    ```
    <button class="md-clipboard md-icon" data-clipboard-target="#__code_7 > code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: rgba(0, 0, 0, 0); border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: rgba(226, 228, 233, 0.12); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s; width: 1.5em; z-index: 1;" title="Copy to clipboard"></button>```
    <a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-7-1" id="bkmrk--31" name="__codelineno-7-1"></a>docker inspect -f '{{ index .Config.Labels "build_version" }}' projectsend
    
    ```
    ```
- Image version number:
    
    ```
    <button class="md-clipboard md-icon" data-clipboard-target="#__code_8 > code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: rgba(0, 0, 0, 0); border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: rgba(226, 228, 233, 0.12); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s; width: 1.5em; z-index: 1;" title="Copy to clipboard"></button>```
    <a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-8-1" id="bkmrk--32" name="__codelineno-8-1"></a>docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/projectsend:latest
    
    ```
    ```

## Updating Info

Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (noted in the relevant readme.md), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](https://docs.linuxserver.io/images/docker-projectsend/#application-setup) section above to see if it is recommended for the image.

Below are the instructions for updating containers:

### Via Docker Compose

- Update images:
    
    
    - All images:
        
        ```
        <button class="md-clipboard md-icon" data-clipboard-target="#__code_9 > code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: rgba(0, 0, 0, 0); border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: rgba(226, 228, 233, 0.12); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s; width: 1.5em; z-index: 1;" title="Copy to clipboard"></button>```
        <a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-9-1" id="bkmrk--33" name="__codelineno-9-1"></a>docker-compose pull
        
        ```
        ```
    - Single image:
        
        ```
        <button class="md-clipboard md-icon" data-clipboard-target="#__code_10 > code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: rgba(0, 0, 0, 0); border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: rgba(226, 228, 233, 0.12); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s; width: 1.5em; z-index: 1;" title="Copy to clipboard"></button>```
        <a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-10-1" id="bkmrk--34" name="__codelineno-10-1"></a>docker-compose pull projectsend
        
        ```
        ```
- Update containers:
    
    
    - All containers:
        
        ```
        <button class="md-clipboard md-icon" data-clipboard-target="#__code_11 > code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: rgba(0, 0, 0, 0); border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: rgba(226, 228, 233, 0.12); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s; width: 1.5em; z-index: 1;" title="Copy to clipboard"></button>```
        <a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-11-1" id="bkmrk--35" name="__codelineno-11-1"></a>docker-compose up -d
        
        ```
        ```
    - Single container:
        
        ```
        <button class="md-clipboard md-icon" data-clipboard-target="#__code_12 > code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: rgba(0, 0, 0, 0); border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: rgba(226, 228, 233, 0.12); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s; width: 1.5em; z-index: 1;" title="Copy to clipboard"></button>```
        <a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-12-1" id="bkmrk--36" name="__codelineno-12-1"></a>docker-compose up -d projectsend
        
        ```
        ```
- You can also remove the old dangling images:
    
    ```
    <button class="md-clipboard md-icon" data-clipboard-target="#__code_13 > code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: rgba(0, 0, 0, 0); border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: rgba(226, 228, 233, 0.12); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s; width: 1.5em; z-index: 1;" title="Copy to clipboard"></button>```
    <a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-13-1" id="bkmrk--37" name="__codelineno-13-1"></a>docker image prune
    
    ```
    ```

### Via Docker Run

- Update the image:
    
    ```
    <button class="md-clipboard md-icon" data-clipboard-target="#__code_14 > code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: rgba(0, 0, 0, 0); border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: rgba(226, 228, 233, 0.12); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s; width: 1.5em; z-index: 1;" title="Copy to clipboard"></button>```
    <a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-14-1" id="bkmrk--38" name="__codelineno-14-1"></a>docker pull lscr.io/linuxserver/projectsend:latest
    
    ```
    ```
- Stop the running container:
    
    ```
    <button class="md-clipboard md-icon" data-clipboard-target="#__code_15 > code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: rgba(0, 0, 0, 0); border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: rgba(226, 228, 233, 0.12); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s; width: 1.5em; z-index: 1;" title="Copy to clipboard"></button>```
    <a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-15-1" id="bkmrk--39" name="__codelineno-15-1"></a>docker stop projectsend
    
    ```
    ```
- Delete the container:
    
    ```
    <button class="md-clipboard md-icon" data-clipboard-target="#__code_16 > code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: rgba(0, 0, 0, 0); border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: rgba(226, 228, 233, 0.12); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s; width: 1.5em; z-index: 1;" title="Copy to clipboard"></button>```
    <a href="https://docs.linuxserver.io/images/docker-projectsend/#__codelineno-16-1" id="bkmrk--40" name="__codelineno-16-1"></a>docker rm projectsend
    
    ```
    ```
- Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
- You can also remove the old dangling images:
    
    ```
    docker image prune
    ```

### Image Update Notifications - Diun (Docker Image Update Notifier)

Tip

We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.

## Building locally

If you want to make local modifications to these images for development purposes or just to customize the logic:

```
git clone https://github.com/linuxserver/docker-projectsend.git
cd docker-projectsend
docker build \
  --no-cache \
  --pull \
  -t lscr.io/linuxserver/projectsend:latest .
```

The ARM variants can be built on x86\_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`

```
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
```

Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.

To help with development, we generate this dependency graph.

<details class="info" id="bkmrk-init-dependency-grap"><summary>Init dependency graph</summary>

<div class="d2"><div class="d2-dark"><svg aria-label="Diagram" data-d2-version="v0.6.9" preserveaspectratio="xMinYMin meet" role="img" viewbox="0 0 713 4064"><svg class="d2-09e0cb91f85b400cb7a1ee46be61a3c7 d2-svg" height="4064" viewbox="11 11 713 4064" width="713"><rect class=" fill-N7" fill="#1E1E2E" height="4064.000000" rx="0.000000" stroke-width="0" width="713.000000" x="11.000000" y="11.000000"></rect><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Ow=="><g class="shape"><rect class=" stroke-B1 fill-B4" fill="#585B70" height="3690.000000" stroke="#CBA6f7" width="711.000000" x="12.000000" y="12.000000"></rect></g><text class="text fill-N1" fill="#CDD6F4" x="367.500000" y="45.000000"></text></g><g class="QmFzZSBJbWFnZXM="><g class="shape"><rect class=" stroke-B1 fill-B4" fill="#585B70" height="302.000000" stroke="#CBA6f7" width="350.000000" x="192.000000" y="3772.000000"></rect></g><text class="text fill-N1" fill="#CDD6F4" x="367.000000" y="3805.000000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5kb2NrZXItbW9kcw=="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="139.000000" x="251.000000" y="62.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="320.500000" y="100.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5iYXNl"><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="182.000000" stroke="#CBA6f7" width="255.000000" x="193.000000" y="198.000000"></rect></g><text class="text fill-N1" fill="#CDD6F4" x="320.500000" y="227.000000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5sZWdhY3ktc2VydmljZXM="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="200.000000" x="198.000000" y="3450.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="298.000000" y="3488.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5jdXN0b20gc2VydmljZXM="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="158.000000" x="103.000000" y="3204.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="182.000000" y="3242.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LXNlcnZpY2Vz"><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="200.000000" x="233.000000" y="3008.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="333.000000" y="3046.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5jaS1zZXJ2aWNlLWNoZWNr"><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="160.000000" x="218.000000" y="3586.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="298.000000" y="3624.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LW1pZ3JhdGlvbnM="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="152.000000" x="171.000000" y="460.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="247.000000" y="498.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LWFkZHVzZXI="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="133.000000" x="180.000000" y="596.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="246.500000" y="634.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LW5naW54LWVuZA=="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="146.000000" x="416.000000" y="1840.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="489.000000" y="1878.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LWNvbmZpZw=="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="119.000000" x="166.000000" y="1986.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="225.500000" y="2024.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LW9zLWVuZA=="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="123.000000" x="259.000000" y="742.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="320.500000" y="780.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LWNvbmZpZy1lbmQ="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="151.000000" x="258.000000" y="2328.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="333.500000" y="2366.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LWNyb250YWItY29uZmln"><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="180.000000" x="209.000000" y="2132.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="299.000000" y="2170.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LXByb2plY3RzZW5kLWNvbmZpZw=="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="209.000000" x="409.000000" y="2132.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="513.500000" y="2170.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LW1vZHMtZW5k"><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="146.000000" x="260.000000" y="2736.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="333.000000" y="2774.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LWN1c3RvbS1maWxlcw=="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="162.000000" x="252.000000" y="2872.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="333.000000" y="2910.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LWVudmZpbGU="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="123.000000" x="333.000000" y="596.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="394.500000" y="634.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LWZvbGRlcnM="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="125.000000" x="427.000000" y="888.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="489.500000" y="926.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LXBocA=="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="102.000000" x="438.000000" y="1296.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="489.000000" y="1334.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LWtleWdlbg=="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="126.000000" x="426.000000" y="1432.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="489.000000" y="1470.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LW1vZHM="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="114.000000" x="276.000000" y="2464.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="333.000000" y="2502.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LW1vZHMtcGFja2FnZS1pbnN0YWxs"><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="228.000000" x="219.000000" y="2600.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="333.000000" y="2638.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LXNhbXBsZXM="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="133.000000" x="423.000000" y="1024.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="489.500000" y="1062.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LW5naW54"><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="114.000000" x="432.000000" y="1160.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="489.000000" y="1198.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LXZlcnNpb24tY2hlY2tz"><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="181.000000" x="399.000000" y="1704.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="489.500000" y="1742.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5pbml0LXBlcm1pc3Npb25z"><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="161.000000" x="409.000000" y="1568.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="489.500000" y="1606.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5zdmMtY3Jvbg=="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="105.000000" x="281.000000" y="3204.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="333.500000" y="3242.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5zdmMtbmdpbng="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="113.000000" x="406.000000" y="3204.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="462.500000" y="3242.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5zdmMtcGhwLWZwbQ=="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="134.000000" x="539.000000" y="3204.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="606.000000" y="3242.500000"></text></g><g class="QmFzZSBJbWFnZXMuJiMzNDtiYXNlaW1hZ2UtYWxwaW5lLW5naW54OjMuMjEmIzM0Ow=="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="250.000000" x="242.000000" y="3822.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="367.000000" y="3860.500000"></text></g><g class="QmFzZSBJbWFnZXMuJiMzNDtiYXNlaW1hZ2UtYWxwaW5lOjMuMjEmIzM0Ow=="><g class="shape"><rect class=" stroke-B1 fill-B5" fill="#45475A" height="66.000000" stroke="#CBA6f7" width="205.000000" x="265.000000" y="3958.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="367.500000" y="3996.500000"></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy5iYXNlLiYjMzQ7Zml4LWF0dHIgK1xubGVnYWN5IGNvbnQtaW5pdCYjMzQ7"><g class="shape"><rect class=" stroke-B1 fill-B6" fill="#313244" height="82.000000" stroke="#CBA6f7" width="155.000000" x="243.000000" y="248.000000"></rect></g><text class="text-bold fill-N1" fill="#CDD6F4" x="320.500000" y="286.500000"><tspan dy="0.000000" x="320.500000"></tspan><tspan dy="18.500000" x="320.500000"></tspan></text></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oZG9ja2VyLW1vZHMgLSZndDsgYmFzZSlbMF0="><marker id="bkmrk--41" markerheight="12.000000" markerunits="userSpaceOnUse" markerwidth="10.000000" orient="auto" refx="7.000000" refy="6.000000" viewbox="0.000000 0.000000 10.000000 12.000000"><polygon class="connection fill-B1" fill="#CBA6f7" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" stroke-width="2"></polygon></marker><path class="connection stroke-B1" d="M 321.333008 130.000000 L 321.333008 194.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1zZXJ2aWNlcyAtJmd0OyBsZWdhY3ktc2VydmljZXMpWzBd"><path class="connection stroke-B1" d="M 266.833008 3076.000000 L 266.833008 3104.000000 S 266.833008 3114.000000 256.833008 3114.000000 L 72.000000 3114.000000 S 62.000000 3114.000000 62.000000 3124.000000 L 62.000000 3350.000000 S 62.000000 3360.000000 72.000000 3360.000000 L 222.166000 3360.000000 S 232.166000 3360.000000 232.166000 3370.000000 L 232.166000 3446.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1zZXJ2aWNlcyAtJmd0OyBjdXN0b20gc2VydmljZXMpWzBd"><path class="connection stroke-B1" d="M 300.165985 3076.000000 L 300.165985 3154.000000 S 300.165985 3164.000000 290.165985 3164.000000 L 192.000000 3164.000000 S 182.000000 3164.000000 182.000000 3174.000000 L 182.000000 3200.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oY3VzdG9tIHNlcnZpY2VzIC0mZ3Q7IGxlZ2FjeS1zZXJ2aWNlcylbMF0="><path class="connection stroke-B1" d="M 182.000000 3272.000000 L 182.000000 3300.000000 S 182.000000 3310.000000 192.000000 3310.000000 L 255.500000 3310.000000 S 265.500000 3310.000000 265.500000 3320.000000 L 265.500000 3446.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4obGVnYWN5LXNlcnZpY2VzIC0mZ3Q7IGNpLXNlcnZpY2UtY2hlY2spWzBd"><path class="connection stroke-B1" d="M 298.833008 3518.000000 L 298.833008 3582.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1taWdyYXRpb25zIC0mZ3Q7IGluaXQtYWRkdXNlcilbMF0="><path class="connection stroke-B1" d="M 247.332993 528.000000 L 247.332993 592.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1uZ2lueC1lbmQgLSZndDsgaW5pdC1jb25maWcpWzBd"><path class="connection stroke-B1" d="M 465.165985 1908.000000 L 465.165985 1936.000000 S 465.165985 1946.000000 455.165985 1946.000000 L 256.082993 1946.000000 S 246.082993 1946.000000 246.082993 1956.000000 L 246.082993 1982.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1vcy1lbmQgLSZndDsgaW5pdC1jb25maWcpWzBd"><path class="connection stroke-B1" d="M 300.833008 810.000000 L 300.833008 838.000000 S 300.833008 848.000000 290.833008 848.000000 L 216.416000 848.000000 S 206.416000 848.000000 206.416000 858.000000 L 206.416000 1982.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1jb25maWcgLSZndDsgaW5pdC1jb25maWctZW5kKVswXQ=="><path class="connection stroke-B1" d="M 206.416000 2054.000000 L 206.416000 2082.000000 S 206.416000 2092.000000 196.416000 2092.000000 L 178.332993 2092.000000 S 168.332993 2092.000000 168.332993 2102.000000 L 168.332993 2278.000000 S 168.332993 2288.000000 178.332993 2288.000000 L 285.750000 2288.000000 S 295.750000 2288.000000 295.750000 2298.000000 L 295.750000 2324.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1jcm9udGFiLWNvbmZpZyAtJmd0OyBpbml0LWNvbmZpZy1lbmQpWzBd"><path class="connection stroke-B1" d="M 333.500000 2200.000000 L 333.500000 2324.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1wcm9qZWN0c2VuZC1jb25maWcgLSZndDsgaW5pdC1jb25maWctZW5kKVswXQ=="><path class="connection stroke-B1" d="M 513.833008 2200.000000 L 513.833008 2228.000000 S 513.833008 2238.000000 503.833008 2238.000000 L 381.250000 2238.000000 S 371.250000 2238.000000 371.250000 2248.000000 L 371.250000 2324.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1jb25maWcgLSZndDsgaW5pdC1jcm9udGFiLWNvbmZpZylbMF0="><path class="connection stroke-B1" d="M 246.082993 2054.000000 L 246.082993 2128.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1tb2RzLWVuZCAtJmd0OyBpbml0LWN1c3RvbS1maWxlcylbMF0="><path class="connection stroke-B1" d="M 333.500000 2804.000000 L 333.500000 2868.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oYmFzZSAtJmd0OyBpbml0LWVudmZpbGUpWzBd"><path class="connection stroke-B1" d="M 395.333008 382.000000 L 395.333008 592.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1vcy1lbmQgLSZndDsgaW5pdC1mb2xkZXJzKVswXQ=="><path class="connection stroke-B1" d="M 341.833008 810.000000 L 341.833008 838.000000 S 341.833008 848.000000 351.833008 848.000000 L 479.500000 848.000000 S 489.500000 848.000000 489.500000 858.000000 L 489.500000 884.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1waHAgLSZndDsgaW5pdC1rZXlnZW4pWzBd"><path class="connection stroke-B1" d="M 489.500000 1364.000000 L 489.500000 1428.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oYmFzZSAtJmd0OyBpbml0LW1pZ3JhdGlvbnMpWzBd"><path class="connection stroke-B1" d="M 247.332993 382.000000 L 247.332993 456.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1jb25maWctZW5kIC0mZ3Q7IGluaXQtbW9kcylbMF0="><path class="connection stroke-B1" d="M 333.500000 2396.000000 L 333.500000 2460.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1tb2RzLXBhY2thZ2UtaW5zdGFsbCAtJmd0OyBpbml0LW1vZHMtZW5kKVswXQ=="><path class="connection stroke-B1" d="M 333.500000 2668.000000 L 333.500000 2732.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1tb2RzIC0mZ3Q7IGluaXQtbW9kcy1wYWNrYWdlLWluc3RhbGwpWzBd"><path class="connection stroke-B1" d="M 333.500000 2532.000000 L 333.500000 2596.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1zYW1wbGVzIC0mZ3Q7IGluaXQtbmdpbngpWzBd"><path class="connection stroke-B1" d="M 489.500000 1092.000000 L 489.500000 1156.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC12ZXJzaW9uLWNoZWNrcyAtJmd0OyBpbml0LW5naW54LWVuZClbMF0="><path class="connection stroke-B1" d="M 489.500000 1772.000000 L 489.500000 1836.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1hZGR1c2VyIC0mZ3Q7IGluaXQtb3MtZW5kKVswXQ=="><path class="connection stroke-B1" d="M 247.332993 664.000000 L 247.332993 692.000000 S 247.332993 702.000000 257.332993 702.000000 L 290.833008 702.000000 S 300.833008 702.000000 300.833008 712.000000 L 300.833008 738.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1lbnZmaWxlIC0mZ3Q7IGluaXQtb3MtZW5kKVswXQ=="><path class="connection stroke-B1" d="M 395.333008 664.000000 L 395.333008 692.000000 S 395.333008 702.000000 385.333008 702.000000 L 351.833008 702.000000 S 341.833008 702.000000 341.833008 712.000000 L 341.833008 738.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1rZXlnZW4gLSZndDsgaW5pdC1wZXJtaXNzaW9ucylbMF0="><path class="connection stroke-B1" d="M 489.500000 1500.000000 L 489.500000 1564.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1uZ2lueCAtJmd0OyBpbml0LXBocClbMF0="><path class="connection stroke-B1" d="M 489.500000 1228.000000 L 489.500000 1292.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1uZ2lueC1lbmQgLSZndDsgaW5pdC1wcm9qZWN0c2VuZC1jb25maWcpWzBd"><path class="connection stroke-B1" d="M 513.833008 1908.000000 L 513.833008 2128.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1mb2xkZXJzIC0mZ3Q7IGluaXQtc2FtcGxlcylbMF0="><path class="connection stroke-B1" d="M 489.500000 956.000000 L 489.500000 1020.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1jdXN0b20tZmlsZXMgLSZndDsgaW5pdC1zZXJ2aWNlcylbMF0="><path class="connection stroke-B1" d="M 333.500000 2940.000000 L 333.500000 3004.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1wZXJtaXNzaW9ucyAtJmd0OyBpbml0LXZlcnNpb24tY2hlY2tzKVswXQ=="><path class="connection stroke-B1" d="M 489.500000 1636.000000 L 489.500000 1700.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1zZXJ2aWNlcyAtJmd0OyBzdmMtY3JvbilbMF0="><path class="connection stroke-B1" d="M 333.500000 3076.000000 L 333.500000 3200.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oc3ZjLWNyb24gLSZndDsgbGVnYWN5LXNlcnZpY2VzKVswXQ=="><path class="connection stroke-B1" d="M 333.500000 3272.000000 L 333.500000 3300.000000 S 333.500000 3310.000000 323.500000 3310.000000 L 308.833008 3310.000000 S 298.833008 3310.000000 298.833008 3320.000000 L 298.833008 3446.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1zZXJ2aWNlcyAtJmd0OyBzdmMtbmdpbngpWzBd"><path class="connection stroke-B1" d="M 366.833008 3076.000000 L 366.833008 3154.000000 S 366.833008 3164.000000 376.833008 3164.000000 L 452.500000 3164.000000 S 462.500000 3164.000000 462.500000 3174.000000 L 462.500000 3200.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oc3ZjLW5naW54IC0mZ3Q7IGxlZ2FjeS1zZXJ2aWNlcylbMF0="><path class="connection stroke-B1" d="M 462.500000 3272.000000 L 462.500000 3350.000000 S 462.500000 3360.000000 452.500000 3360.000000 L 342.165985 3360.000000 S 332.165985 3360.000000 332.165985 3370.000000 L 332.165985 3446.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oaW5pdC1zZXJ2aWNlcyAtJmd0OyBzdmMtcGhwLWZwbSlbMF0="><path class="connection stroke-B1" d="M 400.165985 3076.000000 L 400.165985 3104.000000 S 400.165985 3114.000000 410.165985 3114.000000 L 596.000000 3114.000000 S 606.000000 3114.000000 606.000000 3124.000000 L 606.000000 3200.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="JiMzNDtwcm9qZWN0c2VuZDpsYXRlc3QmIzM0Oy4oc3ZjLXBocC1mcG0gLSZndDsgbGVnYWN5LXNlcnZpY2VzKVswXQ=="><path class="connection stroke-B1" d="M 606.000000 3272.000000 L 606.000000 3400.000000 S 606.000000 3410.000000 596.000000 3410.000000 L 375.500000 3410.000000 S 365.500000 3410.000000 365.500000 3420.000000 L 365.500000 3446.000000" fill="none" marker-end="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-3488378134)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="QmFzZSBJbWFnZXMuKCYjMzQ7YmFzZWltYWdlLWFscGluZS1uZ2lueDozLjIxJiMzNDsgJmx0Oy0gJiMzNDtiYXNlaW1hZ2UtYWxwaW5lOjMuMjEmIzM0OylbMF0="><marker id="bkmrk--42" markerheight="12.000000" markerunits="userSpaceOnUse" markerwidth="10.000000" orient="auto" refx="3.000000" refy="6.000000" viewbox="0.000000 0.000000 10.000000 12.000000"><polygon class="connection fill-B1" fill="#CBA6f7" points="10.000000,0.000000 0.000000,6.000000 10.000000,12.000000" stroke-width="2"></polygon></marker><path class="connection stroke-B1" d="M 367.500000 3892.000000 L 367.500000 3956.000000" fill="none" marker-start="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-2451250203)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><g class="KCYjMzQ7cHJvamVjdHNlbmQ6bGF0ZXN0JiMzNDsgJmx0Oy0gQmFzZSBJbWFnZXMpWzBd"><path class="connection stroke-B1" d="M 367.500000 3706.000000 L 367.500000 3770.000000" fill="none" marker-start="url(#mk-d2-09e0cb91f85b400cb7a1ee46be61a3c7-2451250203)" mask="url(#d2-09e0cb91f85b400cb7a1ee46be61a3c7)" stroke="#CBA6f7"></path></g><mask height="4064" id="bkmrk--43" maskunits="userSpaceOnUse" width="713" x="11" y="11"><rect fill="white" height="4064" width="713" x="11" y="11"></rect><rect fill="rgba(0,0,0,0.75)" height="36" width="212" x="261.500000" y="17.000000"></rect><rect fill="rgba(0,0,0,0.75)" height="36" width="144" x="295.000000" y="3777.000000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="94" x="273.500000" y="84.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="31" width="46" x="297.500000" y="203.000000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="108" x="244.000000" y="3472.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="113" x="125.500000" y="3226.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="87" x="289.500000" y="3030.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="115" x="240.500000" y="3608.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="107" x="193.500000" y="482.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="88" x="202.500000" y="618.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="101" x="438.500000" y="1862.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="74" x="188.500000" y="2008.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="78" x="281.500000" y="764.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="106" x="280.500000" y="2350.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="135" x="231.500000" y="2154.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="164" x="431.500000" y="2154.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="101" x="282.500000" y="2758.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="117" x="274.500000" y="2894.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="78" x="355.500000" y="618.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="80" x="449.500000" y="910.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="57" x="460.500000" y="1318.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="81" x="448.500000" y="1454.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="69" x="298.500000" y="2486.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="183" x="241.500000" y="2622.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="88" x="445.500000" y="1046.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="69" x="454.500000" y="1182.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="136" x="421.500000" y="1726.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="116" x="431.500000" y="1590.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="60" x="303.500000" y="3226.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="68" x="428.500000" y="3226.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="89" x="561.500000" y="3226.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="205" x="264.500000" y="3844.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="21" width="160" x="287.500000" y="3980.500000"></rect><rect fill="rgba(0,0,0,0.75)" height="37" width="110" x="265.500000" y="270.500000"></rect></mask></svg></svg></div></div></details>## Versions

- **21.12.24:** - Rebase to Alpine 3.21, move php .ini file to /config/php.
- **06.06.24:** - Rebase to Alpine 3.20.
- **23.12.23:** - Rebase to Alpine 3.19 with php 8.3.
- **25.05.23:** - Rebase to Alpine 3.18, deprecate armhf.
- **08.03.23:** - Rebasing to alpine 3.17 and upgrading to s6v3.
- **23.08.22:** - Add translation support
- **20.08.22:** - Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base)).
- **24.06.21:** - Rebasing to alpine 3.14, switch to nginx
- **23.01.21:** - Rebasing to alpine 3.13.
- **01.06.20:** - Rebasing to alpine 3.12.
- **31.12.19:** - Rebase to Alpine 3.11 and upgrade to PHP7.
- **23.03.19:** - Switching to new Base images, shift to arm32v7 tag.
- **11.02.19:** - Add pipeline logic and multi arch.
- **11.06.17:** - Fetch version from github.
- **09.12.17:** - Rebase to alpine 3.7.
- **13.06.17:** - Initial Release.  
      
    <span class="md-source-file__fact"><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">February 3, 2025</span></span> F<span class="md-source-file__fact"><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">ebruary 5, 2019</span></span>