# Install Minio S3 Storage Server on Debian/Ubuntu

## Download binary from Github

[https://github.com/minio/minio](https://github.com/minio/minio "https://github.com/minio/minio")

```bash
mkdir /opt/minio_binary
cd /opt/minio_binary
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data
```

## Create user minio

```bash
# If on unpriviledged Proxmox LXC
adduser minio --uid 1000
# Otherwise
adduser minio --uid 101000
```

If on unpriviledged Proxmox LXC, set permissions on host for minio dataset:

```bash
chown 101000:101000 /hddhousing/minio
```

## Create self signed certificate and show fingerprint

Download certgen [https://github.com/minio/certgen](https://github.com/minio/certgen)

```bash
cd /opt/minio_binary
wget https://github.com/minio/certgen/releases/latest/download/certgen-linux-amd64
./certgen-linux-amd64 -host "192.168.0.24" # change ip as needed
mv private.key /home/minio/.minio/certs/
mv public.crt /home/minio/.minio/certs/
chown minio:minio /home/minio/.minio/certs/*
cat /home/minio/.minio/certs/public.crt | openssl x509 -fingerprint -sha256 -noout
# sha256 Fingerprint=EC:F9:1C:A3:8D:84:51:9F:C6:0A:ED:CB:C0:22:3F:8C:94:44:1F:89:21:8F:54:80:40:65:EE:6E:AB:11:30:5F
```

## Create systemd service

```bash
nano /etc/systemd/system/minio.service
```

With content:

```bash
[Unit]
Description=Minio HDD-Housing
After=network.target

[Service]
Environment="MINIO_ROOT_USER=vfgergreadgfg"
Environment="MINIO_ROOT_PASSWORD=dfhrththwwgfsdadfrergetgtrhfdsb"
User=minio
ExecStart=/opt/minio_binary/minio server --anonymous /hddhousingpool

[Install]
WantedBy=multi-user.target
```

Reload systemd and start minio

```bash
systemctl daemon-reload
systemctl enable --now minio.service
systemctl status minio.service
```