All Projects → mimischi → minio-dokku

mimischi / minio-dokku

Licence: other
Dockerfile to run Minio (S3 compatible storage) on Dokku (mini-Heroku)

Programming Languages

Dockerfile
14818 projects

Projects that are alternatives of or similar to minio-dokku

fss3
FSS3 is an S3 filesystem abstraction layer for Golang
Stars: ✭ 52 (-49.02%)
Mutual labels:  minio
dokku-graphite
a graphite, grafana, statsd, carbon plugin for dokku
Stars: ✭ 47 (-53.92%)
Mutual labels:  dokku
dokku-rabbitmq
a rabbitmq plugin for dokku
Stars: ✭ 41 (-59.8%)
Mutual labels:  dokku
face detect api
This is a simple face detection api that takes as input, an image and gives as output, detected faces on the image. This API can be used as an alternative to the paid face detection APIs currently available as it gives quite good accuracy levels.
Stars: ✭ 26 (-74.51%)
Mutual labels:  minio
nestjs-minio
Your favorite object storage with nestjs
Stars: ✭ 36 (-64.71%)
Mutual labels:  minio
plausible on dokku
Dockerfile to run Plausible (analytics) on Dokku (mini-Heroku)
Stars: ✭ 17 (-83.33%)
Mutual labels:  dokku
metalnetes
Create and manage multiple Kubernetes clusters using KVM on a bare metal Fedora 29 server. Includes helm + rook-ceph + nginx ingress + the stock analysis engine (jupyter + redis cluster + minio + automated cron jobs for data collection) - works on Kubernetes version v1.16.0 - 1.16.3 was not working
Stars: ✭ 37 (-63.73%)
Mutual labels:  minio
wpacked
📦 WPacked is a WordPress development starter kit with portability and immediate local development in mind.
Stars: ✭ 73 (-28.43%)
Mutual labels:  dokku
grafana on dokku
Dockerfile to run Grafana (monitoring) on Dokku (mini-Heroku)
Stars: ✭ 12 (-88.24%)
Mutual labels:  dokku
kamu
You favorite book library
Stars: ✭ 65 (-36.27%)
Mutual labels:  dokku
terraform-provider-minio
Terraform provider for managing minio S3 buckets and IAM Users
Stars: ✭ 123 (+20.59%)
Mutual labels:  minio
minio-rclone-webdav-server
A @rclone served WebDAV server with @minio as the s3 storage backend docker example
Stars: ✭ 17 (-83.33%)
Mutual labels:  minio
MLOps
MLOps template with examples for Data pipelines, ML workflow management, API development and Monitoring.
Stars: ✭ 28 (-72.55%)
Mutual labels:  minio
dokku-dockerfile
Deploy applications to Dokku via Dockerfiles outside of the project root
Stars: ✭ 25 (-75.49%)
Mutual labels:  dokku
ImageX
A free image host built with laravel and MinIO
Stars: ✭ 13 (-87.25%)
Mutual labels:  minio
gitlab-chart
Kubernetes Helm chart to deploy GitLab
Stars: ✭ 59 (-42.16%)
Mutual labels:  minio
volumizr
Simple kubernetes storage solution using Minio
Stars: ✭ 20 (-80.39%)
Mutual labels:  minio
dokku-sentry
Deploy your own instance of Sentry onto Dokku!
Stars: ✭ 64 (-37.25%)
Mutual labels:  dokku
dokku-posteio
Poste.io plugin for Dokku
Stars: ✭ 27 (-73.53%)
Mutual labels:  dokku
miniovol
Minio Docker volume plugin. Create docker volumes that mount Minio buckets. Minio is S3 compatible.
Stars: ✭ 14 (-86.27%)
Mutual labels:  minio

Minio Version Dokku Version

Run Minio on Dokku

Perquisites

What is Minio?

Minio is an object storage server, and API compatible with Amazon S3 cloud storage service. Read more at the minio.io website.

What is Dokku?

Dokku is the smallest PaaS implementation you've ever seen - Docker powered mini-Heroku.

Requirements

Setup

We are going to use the domain minio.example.com and Dokku app minio for demonstration purposes. Make sure to replace it.

Create the app

Log onto your Dokku Host to create the Minio app:

dokku apps:create minio

Configuration

Setting environment variables

Minio uses two access keys (ACCESS_KEY and SECRET_KEY) for authentication and object management. The following commands sets a random strings for each access key.

dokku config:set --no-restart minio MINIO_ACCESS_KEY=$(echo `openssl rand -base64 45` | tr -d \=+ | cut -c 1-20)
dokku config:set --no-restart minio MINIO_SECRET_KEY=$(echo `openssl rand -base64 45` | tr -d \=+ | cut -c 1-32)

To login in the browser or via API, you will need to supply both the ACCESS_KEY and SECRET_KEY. You can retrieve these at any time while logged in on your host running dokku via dokku config minio.

Note: if you do not set these keys, Minio will generate them during startup and output them to the log (check if via dokku logs minio). You will still need to set them manually.

You'll also need to set other two environment variables:

  • NGINX_MAX_REQUEST_BODY: used in the custom nginx.conf for this Dokku app to allow uploads up to 15MB to the HTTP server (if the file size is greater than 15MB, s3cmd will split in 15MB parts).
  • MINIO_DOMAIN: used to tell Minio the domain name being used by the server.
dokku config:set --no-restart minio NGINX_MAX_REQUEST_BODY=15M
dokku config:set --no-restart minio MINIO_DOMAIN=minio.example.com

Note: if you're using s4cmd instead, be sure to pass the following parameters: --multipart-split-size=15728640 --max-singlepart-upload-size=15728640.

Persistent storage

To persists uploaded data between restarts, we create a folder on the host machine, add write permissions to the user defined in Dockerfile and tell Dokku to mount it to the app container.

sudo mkdir -p /var/lib/dokku/data/storage/minio
sudo chown 32769:32769 /var/lib/dokku/data/storage/minio
dokku storage:mount minio /var/lib/dokku/data/storage/minio:/home/dokku/data

Domain setup

To get the routing working, we need to apply a few settings. First we set the domain.

dokku domains:set minio minio.example.com

The parent Dockerfile, provided by the Minio project, exposes port 9000 for web requests. Dokku will set up this port for outside communication, as explained in its documentation. Because we want Minio to be available on the default port 80 (or 443 for SSL), we need to fiddle around with the proxy settings.

First add the correct port mapping for this project as defined in the parent Dockerfile.

dokku proxy:ports-add minio http:80:9000

Next remove the proxy mapping added by Dokku.

dokku proxy:ports-remove minio http:80:5000

Push Minio to Dokku

Grabbing the repository

First clone this repository onto your machine.

Via SSH

git clone [email protected]:slypix/minio-dokku.git

Via HTTPS

git clone https://github.com/slypix/minio-dokku.git

Set up git remote

Now you need to set up your Dokku server as a remote.

git remote add dokku [email protected]:minio

Push Minio

Now we can push Minio to Dokku (before moving on to the next part).

git push dokku master

SSL certificate

Last but not least, we can go an grab the SSL certificate from Let's Encrypt.

dokku config:set --no-restart minio [email protected]
dokku letsencrypt minio
dokku proxy:ports-set minio https:443:9000

Note: you must execute these steps after pushing the app to Dokku host.

Wrapping up

Your Minio instance should now be available on minio.example.com.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].