Airsonic is back
Diff
main.tf | 13 ++++++++-----
variables.tf | 1 +
docker/airsonic.tf | 37 -------------------------------------
docker/data.tf | 4 ----
docker/images.tf | 5 -----
media/airsonic.tf | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
media/variables.tf | 3 +++
monitoring/prometheus.tf | 2 +-
media/conf/airsonic.properties.tpl | 41 +++++++++++++++++++++++++++++++++++++++++
9 files changed, 120 insertions(+), 52 deletions(-)
@@ -50,11 +50,14 @@
}
module "media" {
source = "media"
domain = "bb8.fun"
links-emby = "${module.docker.names-emby}"
links-transmission = "${module.docker.names-transmission}"
traefik-labels = "${var.traefik-common-labels}"
source = "media"
domain = "bb8.fun"
links-emby = "${module.docker.names-emby}"
links-transmission = "${module.docker.names-transmission}"
links-mariadb = "${module.docker.names-mariadb}"
traefik-labels = "${var.traefik-common-labels}"
airsonic-smtp-password = "${var.airsonic-smtp-password}"
airsonic-db-password = "${var.mysql_airsonic_password}"
}
module "monitoring" {
@@ -45,6 +45,7 @@
variable "gitea-internal-token" {}
variable "gitea-smtp-password" {}
variable "digitalocean-token" {}
variable "airsonic-smtp-password" {}
variable "traefik-common-labels" {
type = "map"
@@ -1,38 +1,1 @@
@@ -20,10 +20,6 @@
name = "traefik:cancoillotte-alpine"
}
data "docker_registry_image" "airsonic" {
name = "linuxserver/airsonic:latest"
}
data "docker_registry_image" "wikijs" {
name = "requarks/wiki:latest"
}
@@ -18,11 +18,6 @@
pull_triggers = ["${data.docker_registry_image.traefik.sha256_digest}"]
}
resource "docker_image" "airsonic" {
name = "${data.docker_registry_image.airsonic.name}"
pull_triggers = ["${data.docker_registry_image.airsonic.sha256_digest}"]
}
resource "docker_image" "wikijs" {
name = "${data.docker_registry_image.wikijs.name}"
pull_triggers = ["${data.docker_registry_image.wikijs.sha256_digest}"]
@@ -1,0 +1,66 @@
resource "docker_container" "airsonic" {
name = "airsonic"
image = "${docker_image.airsonic.latest}"
restart = "unless-stopped"
destroy_grace_seconds = 30
must_run = true
upload {
content = "${data.template_file.airsonic-properties-file.rendered}"
file = "/usr/lib/jvm/java-1.8-openjdk/jre/lib/airsonic.properties"
}
volumes {
host_path = "/mnt/xwing/config/airsonic/data"
container_path = "/config"
}
volumes {
host_path = "/mnt/xwing/media/Music"
container_path = "/music"
}
volumes {
host_path = "/mnt/xwing/config/airsonic/playlists"
container_path = "/playlists"
}
volumes {
host_path = "/mnt/xwing/config/airsonic/podcasts"
container_path = "/podcasts"
}
labels {
"traefik.enable" = "true"
"traefik.port" = "4040"
"traefik.frontend.rule" = "Host:airsonic.in.${var.domain},airsonic.${var.domain}"
"traefik.frontend.passHostHeader" = "true"
}
env = [
"PUID=1004",
"PGID=1003",
"TZ=Asia/Kolkata",
]
links = ["${var.links-mariadb}"]
}
resource "docker_image" "airsonic" {
name = "${data.docker_registry_image.airsonic.name}"
pull_triggers = ["${data.docker_registry_image.airsonic.sha256_digest}"]
}
data "docker_registry_image" "airsonic" {
name = "linuxserver/airsonic:latest"
}
data "template_file" "airsonic-properties-file" {
template = "${file("${path.module}/conf/airsonic.properties.tpl")}"
vars {
smtp-password = "${var.airsonic-smtp-password}"
db-password = "${var.airsonic-db-password}"
}
}
@@ -1,9 +1,12 @@
variable "domain" {
type = "string"
}
variable "links-emby" {}
variable "links-transmission" {}
variable "links-mariadb" {}
variable "airsonic-smtp-password" {}
variable "airsonic-db-password" {}
variable "traefik-labels" {
type = "map"
@@ -27,7 +27,7 @@
"${docker_container.nodeexporter.name}",
"${docker_container.cadvisor.name}",
"${docker_container.transmission-exporter.name}",
"${var.links-traefik}"
"${var.links-traefik}",
]
restart = "unless-stopped"
@@ -1,0 +1,41 @@
MediaLibraryStatistics=1512 4850 62662 486912890569 15485585
IndexString=A B C D E F G H I J K L M N O P Q R S T U V W X-Z(XYZ)
IgnoredArticles=The El La Los Las Le Les
Shortcuts=New Incoming Podcast
PlaylistFolder=/var/playlists
MusicFileTypes=mp3 ogg oga aac m4a flac wav wma aif aiff ape mpc shn
VideoFileTypes=flv avi mpg mpeg mp4 m4v mkv mov wmv ogv divx m2ts
CoverArtFileTypes2=cover.jpg cover.png cover.gif folder.jpg jpg jpeg gif png
SortAlbumsByYear=true
GettingStartedEnabled=false
WelcomeTitle=Airsonic
WelcomeSubtitle=
WelcomeMessage2=
LoginMessage=
Theme=default
LocaleLanguage=en
LocaleCountry=in
LocaleVariant=
IndexCreationInterval=3
IndexCreationHour=3
FastCacheEnabled=false
OrganizeByFolderStructure=true
DownloadBitrateLimit=0
UploadBitrateLimit=0
LdapEnabled=false
LdapUrl=ldap://host.domain.com:389/cn=Users,dc=domain,dc=com
LdapSearchFilter=(sAMAccountName={0})
LdapManagerDn=
LdapAutoShadowing=false
SmtpServer=smtp.mailgun.com
SmtpEncryption=SSL/TLS
SmtpPort=465
SmtpUser=airsonic@captnemo.in
SmtpFrom=airsonic@captnemo.in
SmtpPassword=${smtp-password}
DatabaseConfigType=embed
DatabaseConfigEmbedDriver=org.hsqldb.jdbcDriver
DatabaseConfigEmbedUrl=jdbc:mysql://mariadb:3306/airsonic
DatabaseConfigEmbedUsername=airsonic
DatabaseConfigEmbedPassword=${db-password}