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:
שלב ב' – שימוש ב 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 כי הקונטיינר נטסף לשם:
בהצלחה!
Leave a Reply