In dieser Anleitung zeige ich euch wie ihr LinkAce installieren könnt. LinkAce ist ein selbst gehostetes Archiv zum Sammeln von Links Ihrer bevorzugten Websites. Speichern Sie Artikel, um sie später zu lesen, um sie in Ihrem nächsten Projekt zu verwenden oder sie langfristig zu archivieren. LinkAce bietet viele Funktionen und behält gleichzeitig eine saubere und minimale Benutzeroberfläche bei.
1. Grundvoraussetzungen
- Docker & Docker Compose v2 (Debian / Ubuntu)
- Traefik v2 – Reverse-Proxy mit CrowdSec einrichten
2. Ordner und Dateien anlegen
Nun legen wir einen Ordner und eine .env Datei an.
mkdir /opt/containers/linkace touch /opt/containers/linkace/.env chmod 777.env
3. Docker Compose erstellen
Nun erstellen wir uns eine Docker Compose Datei.
nano /opt/containers/linkace/docker-compose.yml
Kopiert nun folgenden Inhalt:
version: "3" services: # --- MariaDB db: image: mariadb:10.7 restart: unless-stopped command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_bin environment: - MYSQL_ROOT_PASSWORD=sicher ###Kennwort setzen### - MYSQL_USER=linkace - MYSQL_PASSWORD=sicher ###Kennwort setzen### - MYSQL_DATABASE=linkace volumes: - db:/var/lib/mysql networks: - default # --- LinkAce Image with PHP app: image: linkace/linkace:simple restart: unless-stopped depends_on: - db #ports: # - 80:80 volumes: - ./.env:/app/.env - linkace_logs:/app/storage/logs labels: - "traefik.enable=true" - "traefik.http.routers.linkace.entrypoints=https" - "traefik.http.routers.linkace.rule=(Host(`linkace.euredomain.de`))" - "traefik.http.routers.linkace.tls=true" - "traefik.http.routers.linkace.tls.certresolver=http" - "traefik.http.routers.linkace.service=linkace" - "traefik.http.services.linkace.loadbalancer.server.port=80" - "traefik.docker.network=proxy" - "traefik.http.routers.linkace.middlewares=default@file" networks: - proxy - default volumes: linkace_logs: db: driver: local networks: proxy: external: true
Noch anzupassen:
- eure Domain bei Traefik (linkace.euredomain.de)
- und eure Kennwörter eingeben
Jetzt erstellen wir uns eine .env Datei.
nano /opt/containers/linkace/.env
Kopiert nun folgenden Inhalt:
Passt die APP_URL=https://linkace.eutedomain.de an
## LINKACE CONFIGURATION ## Basic app configuration # The application name is used internally and may not be changed APP_NAME=LinkAce COMPOSE_PROJECT_NAME=linkace # The URL should be set if you notice issues with URLs generated by Laravel, which might be an issue with # nginx configuration or the proxy you use. APP_URL=https://linkace.euredomain.de #########Domian eintragen######### # The environment is usually 'production' but may be changed to 'local' for development APP_ENV=production # The app key is generated later, please leave it blank APP_KEY= ##########API eintragen######### # Enable the debug more if you are running into issues or while developing APP_DEBUG=false # Set to true, if you are using a proxy that terminates SSL. Required to get the correct URLs for LinkAce FORCE_HTTPS=false # Indicates that the setup was completed and the app can be used now SETUP_COMPLETED=false # Set the time after a session expires automatically, in minutes. Default is 7 days. SESSION_LIFETIME=10080 ## Backup configuration # Enable backups here BACKUP_ENABLED=false # Choose the destination of the backup. If you set up AWS S3 credentials below you may choose 's3' which is used # as a synonym for AWS. Leave blank or set to 'local' if you want to store backups within /storage/app/backups. BACKUP_DISK=s3 # Set to false if you do not want to be notified about successful or broken backups BACKUP_NOTIFICATIONS=true # The notification email may be used to get backup notifications BACKUP_NOTIFICATION_EMAIL=your@email.com # Maximum size of all backups in megabytes BACKUP_MAX_SIZE=512# Amazon Web Services (AWS) S3 configuration # Define the key ID, the access key, the region and your bucket name here if you want to use AWS S3 for backups AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_DEFAULT_REGION=us-east-1 AWS_BUCKET= ## Mail configuration MAIL_FROM_ADDRESS=your@email.com MAIL_FROM_NAME=LinkAce # Set the driver used for sending email here, default is `smtp` MAIL_DRIVER=smtp # Set the SMTP host and its port here MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 # Set the username used to connect to the SMTP server here MAIL_USERNAME=null # Set the password used to connect to the SMTP server here MAIL_PASSWORD=null # If your SMTP server uses encrypted connections, enable it here by setting the variable to `tls` MAIL_ENCRYPTION=null ## Configuration of the database connection ## If you are using the standard configuration provided by LinkAce, you can leave all values except the password as ## they are. Docker will automatically create a linkace database and a corresponding user. DB_CONNECTION=mysql DB_HOST=db # Set the Redis connection here if you want to use it REDIS_HOST=redis REDIS_PASSWORD=sicher ######Kennwort setzen######## REDIS_PORT=6379
4. LinkAce starten
Dazu gebt ihr einfach folgenden Befehl ein:
docker compose -f /opt/containers/linkace/docker-compose.yml up -d
5. App Key auslesen
cd /opt/containers/linkace docker exec linkace-app-1 php artisan key:generate --show
6. App Key in .env eintragen
nano /opt/containers/linkace/.env
7. LinkAce neu starten
docker compose -f /opt/containers/linkace/docker-compose.yml down docker compose -f /opt/containers/linkace/docker-compose.yml up -d
Wartet nun einige Minuten und geht anschließend auf eure Homepage linkace.euredomain.de
Dort solltet ihr folgendes sehen:
Kennwörter, die wir festgelegt hatten eintragen.
8. Rechte der .env ändern
Wenn alles funktioniert noch die Rechte ändern.
cd /opt/containers/linkace/ chmod 666 .env
Viel Spaß steje
Noch eine Frage: Wenn die Dateirechte der .env-Datei auf 600 ändere – wie in der Anleitung beschrieben – startet die Weboberfläche nicht mehr. Ändere ich zurück auf 777 funktioniert alles wieder. Hat jemand eine Idee?
Hinweis: Ich habe dort auch die Backups und den Mail-Relayhost noch mit drin. Liegt es evtl. daran?
Hallo,
Habe nach der angepassten Anleitung alles eingericht, erhalte aber nach dem letzten Schritt (Account anlegen) einen WARN Hinweis 500 – Servererror.”An internal server error occured. If you are the administrator, consult the application logs for details”
Hat noch jemand diesen Fehler.
Kurze Anmerkung: Müssten die labels im docker-compose.yml nicht noch an die Traefik-Anleitung von Psycho0verload angepasst werden? Die Umleitung auf https erfolgt doch in der traefik.yml, daher ist der entrypoint auf http hinfällig.
Ich schlage daher folgendes vor:
labels:
– “traefik.enable=true”
– “traefik.http.routers.linkace.entrypoints=https”
– “traefik.http.routers.linkace.rule=Host(
linkace.euredomain.de
)”– “traefik.http.routers.linkace.tls=true”
– “traefik.http.routers.linkace.tls.certresolver=http”
– “traefik.http.routers.linkace.service=linkace”
– “traefik.http.services.linkace.loadbalancer.server.port=80”
– “traefik.http.routers.linkace.middlewares=default@file”
– “traefik.docker.network=proxy”
habe gerade nach Anleitung linkace eingerichtet. Es erscheint leider nur eine weiße Seite,
im Broswer, mal schauen ob ich den Fehler finde.
diese Woche als Vorschlag auf die Wunschliste, heute morgen die Anleitung gesehen.
Super und vielen Dank, werde es später ausprobieren.
Interessant, LinkAce kannte ich noch nicht. Scheint auf jeden Fall einen Blick wert zu sein. Allerdings habe ich mir auf Grundlage von Christians Anleitungen letztes Jahr bereits Wallabag via Docker eingerichtet. Hier habe ich den Vorteil, dass ich es via Plugin in meine Tiny Tiny RSS Instanz einbinden kann und neue Artikel direkt archivieren kann, ohne diese erstmal öffnen zu müssen. Wenn jemand Interesse hat, kann ich gerne Informationen oder eine Anleitung bereitstellen.
Gruß Pascal