Ubuntu-server met MinIO + Let's Encrypt + Laravel

MinIO installeren en instellen op Ubuntu + Lets Encrypt + Laravel-integratie

Op zoek naar een kosteneffectief alternatief voor Amazon S3? MiniIO is een geweldige optie. In deze handleiding leiden we u door de installatie en basisconfiguratie van MinIO op uw Ubuntu-server, samen met bonusstappen om het te integreren met Laravel/PHP.

Het opzetten hiervan is uiteraard op eigen risico. Wij zijn nergens verantwoordelijk voor.

Stap 1: Stel Ubuntu-server in

Voordat we beginnen, moet u ervoor zorgen dat er een Ubuntu-server actief is.

Stap 2: Installeer MinIO

Om MinIO te installeren, volgt u de instructies in de officiële MinIO-documentatie.

Stap 3: Configureer de MinIO systemd-service

Voeg na de installatie het bestand systemd minio.service toe. Als het niet automatisch wordt toegevoegd, kunt u het handmatig toevoegen. U vindt een voorbeeldbestand hier.

Open het bestand minio.service en verwijder de volgende regels:

Gebruiker=minio-gebruiker Groep=minio-gebruiker

Zonder deze regels zal MinIO in de root werken, zoals beschreven in dit GitHub-probleem.

Stap 4: Installeer het Let's Encrypt SSL-certificaat

MinIO ondersteunt SSL-codering. Om SSL in te stellen, kunt u Let's Encrypt gebruiken, een gratis en algemeen vertrouwde SSL-certificaatprovider.

Volg de instructies op https://certbot.eff.org zodat Ubuntu Let's Encrypt installeert en uw SSL-certificaat genereert.

Stap 5: Configureer MinIO met Let's Encrypt

Zodra u het SSL-certificaat heeft gegenereerd, moet u MinIO configureren om het te gebruiken. Hier is hoe:

Kopieer de SSL-certificaatbestanden naar de MinIO-directory:

cp /etc/letsencrypt/live/uwdomein.com/fullchain.pem /root/.minio/certs/public.crt cp /etc/letsencrypt/live/uwdomein.com/privkey.pem /root/.minio/certs/private .sleutel

Stel een crontab in om het SSL-certificaat wekelijks te vernieuwen:

0 5 * * 1 cp /etc/letsencrypt/live/uwdomein.com/fullchain.pem /root/.minio/certs/public.crt 0 5 * * 5 cp /etc/letsencrypt/live/uwdomein.com/privkey. pem /root/.minio/certs/private.key

Stap 6: Wijzig de MinIO-instellingen

Wijzig het MinIO-configuratiebestand:

nano /etc/default/minio

Update de volgende instellingen:

MINIO_VOLUMES="/mnt/data" MINIO_OPTS="--adres:9000 --console-adres:9001" MINIO_ROOT_USER="uw_gebruikersnaam" MINIO_ROOT_PASSWORD="uw_wachtwoord" MINIO_SERVER_URL="https://uwdomein.com:9000" MINIO_CONFIG_ENV_FILE=/ etc/standaard/minio

Stap 7: Wijzig de standaardgebruikersnaam en het wachtwoord

Wijzig de standaard gebruikersnaam en het wachtwoord om uw MinIO-installatie te beveiligen.

Stap 8: Start de MinIO-service opnieuw

Start de MinIO-service opnieuw om de wijzigingen toe te passen:

sudo systemctl herstart minio.service

Controleer de status om er zeker van te zijn dat MinIO actief is:

sudo systemctl-status minio.service

Stap 9: Schakel MinIO in bij het opstarten

Om MinIO in te schakelen bij het opstarten, gebruikt u de volgende opdracht:

systemctl schakel minio in

Stap 10: Maak een emmer

Maak een bucket in MinIO om uw bestanden op te slaan. U kunt de MinIO-webinterface of het MinIO-opdrachtregelprogramma gebruiken om een bucket te maken.

Stap 11: Maak een beleid voor de bucket

Maak een beleid voor de bucket om toegangsrechten te definiëren. Hier is een voorbeeldbeleid:

{ "Versie": "17-10-2012", "Verklaring": [ { "Effect": "Toestaan", "Actie": [ "s3:*" ], "Bron": [ "arn:aws:s3 :::uw_bucket/*" ] } ] }

Stap 12: Maak een gebruiker aan en wijs het nieuwe beleid toe

Maak een gebruiker aan in MinIO en wijs het eerder gemaakte beleid toe aan de gebruiker.

Genereer een toegangssleutel en een geheime sleutel voor de gebruiker. U heeft deze sleutels nodig bij de volgende stappen.

Stap 13: Laravel-ondersteuning voor MinIO instellen

Als u Laravel of PHP gebruikt, kunt u MinIO met uw applicatie integreren met behulp van de league/flysystem-aws-s3-v3 pakket.

Installeer het pakket via Composer:

componist vereist league/flysystem-aws-s3-v3 "^3.0"

Update vervolgens het bestandssystemen.php configuratiebestand:

'cloud' => env('FILESYSTEM_CLOUD', 'minio'), ... 'minio' => [ 'stuurprogramma' => 's3', 'endpoint' => env('MINIO_ENDPOINT', 'https:// jouwdomein.com:9000'), 'use_path_style_endpoint' => true, 'key' => env('MINIO_KEY', '...'), 'secret' => env('MINIO_SECRET', '...') , 'region' => env('MINIO_REGION', 'JUSTSOMETHINGRANDOM'), 'bucket' => env('MINIO_BUCKET', 'BUCKETNAME'), ],

Stap 14: Test MinIO-integratie in Laravel

Controleer de MinIO-integratie met behulp van de Tinker-console van Laravel:

php artisan tinker \Storage::cloud()->put('hello.json', '{"hello": "world"}'); \Storage::cloud()->get('hallo.json');

Dit zou zoiets als 'waar' of iets succesvols moeten retourneren. Als dit niet het geval is, kunt u deze debug-optie voor bestandssystemen toevoegen aan MinIO: 'throw'=> env('APP_DEBUG'), zodat het zoiets wordt als:

'cloud' => env('FILESYSTEM_CLOUD', 'minio'), ... 'minio' => [ 'stuurprogramma' => 's3', 'endpoint' => env('MINIO_ENDPOINT', 'https:// jouwdomein.com:9000'), 'use_path_style_endpoint' => true, 'key' => env('MINIO_KEY', '...'), 'secret' => env('MINIO_SECRET', '...') , 'region' => env('MINIO_REGION', 'JUSTSOMETHINGRANDOM'), 'bucket' => env('MINIO_BUCKET', 'BUCKETNAME'), 'throw' => env('APP_DEBUG', false) ],

Hierdoor worden alleen fouten opgespoord/foutmeldingen weergegeven als APP_DEBUG is ingeschakeld. Voer dit nooit uit in productie of in gevoelige omgevingen.

Stap 15: Reverse DNS instellen

Stel indien mogelijk reverse DNS in.

Stap 16: Opnieuw opstarten en verifiëren

Start uw server opnieuw op en controleer of MinIO en de integratie met Laravel nog steeds correct functioneren. Dit betekent (hopelijk) dat systemd nog steeds goed werkt.

Stap 17: Firewalls configureren

Om de veiligheid te verbeteren, kunt u firewalls instellen om de toegang tot MinIO te beperken:

  • Voor beheerderstoegang moet u alleen verbindingen toestaan vanaf uw thuis-/kantoor-IP-adressen.
  • Sta voor webtoegang alleen verbindingen toe vanaf de IP's van de servers die toegang nodig hebben.

Wees altijd op uw hoede voor het feit dat als het IP-adres van uw huis, kantoor of server verandert, u deze aan de witte lijst moet toevoegen. Als de IP-adressen te vaak veranderen, neem dan andere passende beveiligingsmaatregelen voor uw server.

Door deze stappen te volgen, kunt u een basis MinIO-server op uw Ubuntu-server installeren en instellen, waardoor u de hoge kosten die gepaard gaan met Amazon S3 vermijdt. Door MinIO te integreren met Laravel/PHP kunt u de kracht van objectopslag in uw applicaties benutten, terwijl u de controle over uw gegevens en kosten behoudt.

Maak ook een cronjob voor het controleren van de schijfruimte die een e-mail stuurt als uw schijf bijna vol is, vooral als u MinIO in de enkele servermodus gebruikt. MinIO heeft de mogelijkheid om meerdere servers en replicatiezones aan elkaar te koppelen.

Als dit te complex is, hebben we ook een handleiding gemaakt voor het opzetten van een eenvoudige SFTP-server voor Ubuntu / Laravel.

Laat een reactie achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

nl_NLNederlands
Scroll naar boven