diff --git a/public/seaweedfs.png b/public/seaweedfs.png new file mode 100644 index 000000000..74bfb12a0 Binary files /dev/null and b/public/seaweedfs.png differ diff --git a/templates/compose/seaweedfs.yaml b/templates/compose/seaweedfs.yaml new file mode 100644 index 000000000..a1147da9c --- /dev/null +++ b/templates/compose/seaweedfs.yaml @@ -0,0 +1,87 @@ +# documentation: https://github.com/seaweedfs/seaweedfs +# slogan: SeaweedFS is a simple and highly scalable distributed file system. Compatible with S3, with an admin web interface. +# category: storage +# tags: object, storage, server, s3, api +# logo: svgs/garage.svg +# port: 8333 + +services: + seaweedfs-master: + image: chrislusf/seaweedfs:4.05 + environment: + - SERVICE_URL_S3_8333 + - AWS_ACCESS_KEY_ID=${SERVICE_USER_S3} + - AWS_SECRET_ACCESS_KEY=${SERVICE_PASSWORD_S3} + volumes: + - seaweedfs-s3-data:/data + - type: bind + source: ./base-config.json + target: /base-config.json + content: | + { + "identities": [ + { + "name": "anonymous", + "actions": [ + "Read" + ] + }, + { + "name": "admin", + "credentials": [ + { + "accessKey": "env:AWS_ACCESS_KEY_ID", + "secretKey": "env:AWS_SECRET_ACCESS_KEY" + } + ], + "actions": [ + "Admin", + "Read", + "ReadAcp", + "List", + "Tagging", + "Write", + "WriteAcp" + ] + } + ] + } + entrypoint: | + sh -c '\ + sed "s/env:AWS_ACCESS_KEY_ID/$AWS_ACCESS_KEY_ID/g" /base-config.json > /base1-config.json; \ + sed "s/env:AWS_SECRET_ACCESS_KEY/$AWS_SECRET_ACCESS_KEY/g" /base1-config.json > /config.json; \ + weed server -dir=/data -master.port=9333 -s3 -s3.port=8333 -s3.config=/config.json\ + ' + healthcheck: + test: + - CMD-SHELL + - "wget --spider -q http://0.0.0.0:8333; [ $$? -le 8 ]" + interval: 10s + timeout: 5s + retries: 10 + + seaweedfs-admin: + image: chrislusf/seaweedfs:4.05 + environment: + - SERVICE_URL_ADMIN_23646 + - SEAWEED_USER_ADMIN=${SERVICE_USER_ADMIN} + - SEAWEED_PASSWORD_ADMIN=${SERVICE_PASSWORD_ADMIN} + command: + - admin + - "-master=seaweedfs-master:9333" + - "-adminUser=${SEAWEED_USER_ADMIN}" + - "-adminPassword=${SEAWEED_PASSWORD_ADMIN}" + - "-port=23646" + - "-dataDir=/data" + volumes: + - seaweedfs-admin-data:/data + healthcheck: + test: + - CMD-SHELL + - "wget --spider -q http://0.0.0.0:23646; [ $$? -le 8 ]" + interval: 10s + timeout: 5s + retries: 10 + depends_on: + seaweedfs-master: + condition: service_healthy