Install Airsonic on top of Docker-Compose

AirSonic - Web based music Library - DockerIl.net

Airsonic הנה מערכת חינמית , בעלת ממשק אינטרנטי המשמשת להזרמת מדיה דרך, וליצירת ספריית מוסיקה אישית. Airsonic מאפשרת לנו לנהל בקלות רבה אוספי מוסיקה גדולים ותומכת בכל פורמט שמע הניתן להזרמה דרך פרוטוקול Http, לדוגמה MP3, AAC, OGG ועוד וכן תומכת בהמרה של פורמטים שונים בזמן ההזרמה.

בנוסף להיותה מערכת להזרמת מדיה מהספריה המקומית, ישנה אפשרות לבצע חיפושים, יצירת רשימות השמעה וכן תמיכה בפודקאסטים, רדיו אינטרנטי, שרותי DNLA/UPNP ועוד.

במדריך זה אסביר כיצד ניתן להתקין את המערכת על גבי docker-compose וכן על ההגדרות הראשוניות שלה. אך לפני שנתחיל יש לוודא כי התקנתם Docker-Compose על פי המדריך הבא.

שלב א' – התקנת Airsonic באמצעות קובץ ה docker-compose.yaml

פתחו את קובץ ה docker-compose.yaml והוסיפו פנימה את השורות הבאות:

  airsonic:
  #This Container is for airsonic https://airsonic.github.io/
    image: airsonic/airsonic
    container_name: airsonic
    volumes:
    - "/mnt/media2/music:/airsonic/music:z"
    - "/mnt/podcasts:/airsonic/podcasts:z"
    - "/mnt/playlists:/airsonic/playlists:z"
    - "./airsonic:/airsonic/data"
    environment:
      - "JAVA_OPTS=-Dserver.use-forward-headers=true -Dserver.tomcat.protocol-header=X-Forwarded-Proto"
    restart: unless-stopped
    ports:
    - "4040:4040"

כאשר החליפו את ה Volumes בנתיבים שלכם:

  • airsonic/music – נתיב לספריית המוסיקה שלכם
  • /airsonic/podcasts – נתיב לספריית הפודקאסטים שלכם
  • airsonic/playlists – נתיב לקבצי הפלייליסט שלכם.

שמרו את הקובץ והריצו את הפקודה הבאה:

docker-compose up -d

במידה וההתקנה התבצעה כראוי, תוכלו לראות שי נוסף קונטיינר חדש בשם Airsonic:

Airsonic Portainer - dockeril.net

שלב ב' – שימוש ב Traefik

על מנת להשתמש ב Airesonic מחוץ לרשת הבתית רצוי ואף מומלץ להשתמש ב Reverse Proxy בתוספת תעודת SSL ולא באמצעות פתיחת הפורטים, וזאת מטעמי אבטחה. בחלק זה של המדריך נוסיף הגדרה של Traefik עליו כתבתי בהרחבה כאן.

לצורך הטמעת השימוש ב Traefik ערכו את קובץ ה docker-compose.yaml והוסיפו את הקוד הבא:

    networks:
      - default
      - web
    labels:
      - "traefik.enable=true"
      - "traefik.port=4040"
      - "traefik.frontend.rule=Host:${AIRSONIC_DOMAIN}"
      - "traefik.frontend.redirect.regex=^http://${AIRSONIC_DOMAIN}/(.*)"
      - "traefik.frontend.redirect.replacement=${AIRSONIC_DOMAIN}/$$1"
      - "traefik.frontend.redirect.permanent=true"
      - "traefik.frontend.whiteList.useXForwardedFor=true"
      - "traefik.frontend.headers.SSLProxyHeaders=X-Forwarded-Proto:https"
      - "traefik.default.protocol=http"
      - "com.centurylinklabs.watchtower.enable=true"
      - "traefik.docker.network=web"
      - "traefik.frontend.headers.SSLRedirect=true"
      - "traefik.frontend.headers.STSSeconds=315360000"
      - "traefik.frontend.headers.browserXSSFilter=true"
      - "traefik.frontend.headers.contentTypeNosniff=true"
      - "traefik.frontend.headers.forceSTSHeader=true"
      - "traefik.frontend.headers.SSLHost=music.domain.com"
      - "traefik.frontend.headers.STSIncludeSubdomains=true"
      - "traefik.frontend.headers.STSPreload=true"
      - "traefik.frontend.headers.frameDeny=false"

כך שהקוד כולו יראה כך:

  airsonic:
  #This Container is for airsonic https://airsonic.github.io/
    image: airsonic/airsonic
    container_name: airsonic
    volumes:
    - "/mnt/media2/music:/airsonic/music:z"
    - "/mnt/podcasts:/airsonic/podcasts:z"
    - "/mnt/playlists:/airsonic/playlists:z"
    - "./airsonic:/airsonic/data"
    environment:
      - "JAVA_OPTS=-Dserver.use-forward-headers=true -Dserver.tomcat.protocol-header=X-Forwarded-Proto"
    restart: unless-stopped
    ports:
    - "4040:4040"
    networks:
      - default
      - web
    labels:
      - "traefik.enable=true"
      - "traefik.port=4040"
      - "traefik.frontend.rule=Host:${AIRSONIC_DOMAIN}"
      - "traefik.frontend.redirect.regex=^http://${AIRSONIC_DOMAIN}/(.*)"
      - "traefik.frontend.redirect.replacement=${AIRSONIC_DOMAIN}/$$1"
      - "traefik.frontend.redirect.permanent=true"
      - "traefik.frontend.whiteList.useXForwardedFor=true"
      - "traefik.frontend.headers.SSLProxyHeaders=X-Forwarded-Proto:https"
      - "traefik.default.protocol=http"
      - "com.centurylinklabs.watchtower.enable=true"
      - "traefik.docker.network=web"
      - "traefik.frontend.headers.SSLRedirect=true"
      - "traefik.frontend.headers.STSSeconds=315360000"
      - "traefik.frontend.headers.browserXSSFilter=true"
      - "traefik.frontend.headers.contentTypeNosniff=true"
      - "traefik.frontend.headers.forceSTSHeader=true"
      - "traefik.frontend.headers.SSLHost=music.domain.com"
      - "traefik.frontend.headers.STSIncludeSubdomains=true"
      - "traefik.frontend.headers.STSPreload=true"
      - "traefik.frontend.headers.frameDeny=false"

וודאו כי אתם מחליפים את כתובת ה url מ music.domain.com לשלכם.
כעת הריצו את הפקודה הבאה על מנת לעדכן את הגדרות הקונטיינר:

docker-compose up -d

אם בצעתם את ההנחיות כראוי, תוכלו לראות בממשק הניהול של Traefik כי הקונטיינר נטסף לשם:

Airesonic Traefik Settings - Dockeril

בהצלחה!

Be the first to comment

Leave a Reply

כתובת האימייל שלך לא תפורסם


*