--- resource_types: - name: aptly-resource type: docker-image source: repository: docker.datentonne.net/concourse/aptly-resource tag: latest resources: - name: vaultwarden type: github-release source: owner: dani-garcia repository: vaultwarden access_token: ((github.access_token)) - name: vaultwarden-deb type: aptly-resource source: api_uri: https://apt-api.datentonne.net/ repo_uri: https://apt.datentonne.net/ repo: datentonne distribution: debian component: main architecture: amd64 package: vaultwarden-docker username: ((aptly.username)) password: ((aptly.password)) timeout: 1801 keep_versions: 5 jobs: - name: build plan: - get: vaultwarden params: globs: - dummy-*-linux-amd64 - task: build config: platform: linux image_resource: type: registry-image source: { repository: ruby } inputs: - name: vaultwarden outputs: - name: deb run: path: /bin/bash args: - -c - | export VERSION="$(cat vaultwarden/version)" export VERSION_OUT="$(cat vaultwarden/version)-$(date +%s)" gem install fpm cd vaultwarden mkdir -p etc/vaultwarden mkdir -p opt/vaultwarden cat <<- EOF > vaultwarden.service [Unit] Description=vaultwarden service with docker compose Requires=docker.service After=docker.service [Service] Type=oneshot RemainAfterExit=true WorkingDirectory=/opt/vaultwarden ExecStart=/usr/local/bin/docker-compose up -d --remove-orphans ExecStop=/usr/local/bin/docker-compose down [Install] WantedBy=multi-user.target EOF cat <<- EOF > after-install mkdir -p /opt/vaultwarden/data/ EOF chmod +x after-install cat <<- EOF > opt/vaultwarden/env TAG=${VERSION} EOF ln -s env opt/vaultwarden/.env mkdir -p opt cat <<- EOF > opt/vaultwarden/docker-compose.yml version: "3" services: app: image: vaultwarden/server:\${TAG} container_name: vaultwarden ports: - "3003:80" volumes: - ./data/:/data/ EOF fpm \ --verbose \ -f \ -n vaultwarden-docker \ -s dir \ -t deb \ -v $VERSION_OUT \ --after-install after-install \ --config-files opt/vaultwarden/docker-compose.yml \ --deb-systemd vaultwarden.service \ opt/vaultwarden/=/opt/vaultwarden/ dpkg-deb -c vaultwarden-docker_*.deb cd .. mv -v vaultwarden/vaultwarden-docker_${VERSION_OUT}_amd64.deb deb/ echo "deb/vaultwarden-docker_${VERSION_OUT}_amd64.deb" > deb/filename - put: vaultwarden-deb params: archive_file: deb/filename