From 94626898f19aae9ad788aefd93508ebd08c6ca57 Mon Sep 17 00:00:00 2001 From: "J. Elfring" Date: Fri, 2 Jun 2023 16:42:46 +0200 Subject: [PATCH] Remove unused images --- agate/Dockerfile | 30 ---- agate/README.md | 53 ------ agate/start.sh | 6 - docker-compose.yaml | 12 -- pocketbase/Dockerfile | 28 --- pocketbase/pocketbase.sh | 13 -- prosody-0.11/Dockerfile | 86 ---------- prosody-0.11/README.md | 81 --------- prosody-0.11/assets/prosody.cfg.lua | 256 ---------------------------- 9 files changed, 565 deletions(-) delete mode 100644 agate/Dockerfile delete mode 100644 agate/README.md delete mode 100644 agate/start.sh delete mode 100644 pocketbase/Dockerfile delete mode 100644 pocketbase/pocketbase.sh delete mode 100644 prosody-0.11/Dockerfile delete mode 100644 prosody-0.11/README.md delete mode 100644 prosody-0.11/assets/prosody.cfg.lua diff --git a/agate/Dockerfile b/agate/Dockerfile deleted file mode 100644 index 15f68d7..0000000 --- a/agate/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -FROM alpine:latest AS builder -RUN apk add cargo -RUN wget -O source.tar.gz \ - $(wget -qO- https://api.github.com/repos/mbrubeck/agate/releases/latest \ - | sed -nE 's/^.*"tarball_url"\s*:\s*"([^"]+)".*$/\1/p' \ - ) \ - && tar xzf source.tar.gz \ - && mv /mbrubeck-agate-* /agate \ - && cd agate \ - && cargo build --release - - -FROM alpine:latest -RUN apk add --update --no-cache libgcc \ - && mkdir -p /app/.certificates \ - && mkdir /gmi \ - && chown daemon:daemon /app/.certificates -COPY --from=builder /agate/target/release/agate /usr/bin/agate -COPY ./start.sh /app - -ENV LANG=en-US \ - HOSTNAME=example.com -VOLUME ["/app/.certificates", "/gmi"] -EXPOSE 1965 - -USER daemon -WORKDIR /app - -ENTRYPOINT ["/bin/sh", "start.sh"] - diff --git a/agate/README.md b/agate/README.md deleted file mode 100644 index 970e4c3..0000000 --- a/agate/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# Install agate in a docker container -(these instructions assume you use linux and have some experience with both docker and the command line) -## obtain the source code - -There are currently no container images online so you have to build the image yourself before you can use it. -There are two options available for this: downloading a release or cloning the repository with `git`. -I will explain both methods but if you're unsure which method to use, I would recommend the release for new comers because it's probably more tested so you'll encounter less problems. - -### downloading the release tarball - -Download the tarball. Go to [https://github.com/mbrubeck/agate/releases/latest](https://github.com/mbrubeck/agate/releases/latest), and copy the url of the source code tarball. - -``` -wget URL -``` - -Then unpack the tarball and remove it afterwards: -``` -tar -xzf tarball.tar.gz -rm tarball.tar.gz -``` - -### clone the repository with git - -I assume you have git already installed. If not, please search on how to do it in the internet. - -``` -git clone https://github.com/mbrubeck/agate -cd agate -``` - -## build the image -Enter the `tools/docker` directory: - -``` -cd tools/docker -``` -And now build the docker image: - -``` -docker build -t agate . -``` -This process will take a few minutes because all the rust modules have to be compiled from source. - -## start the docker container - -``` -docker run -t -d --name agate -p 1965:1965 -v /var/www/gmi:/gmi -v /var/www/gmi/.certificates:/app/.certificates -e HOSTNAME=example.org -e LANG=en-US agate:latest -``` - -You have to replace `/var/www/gmi/` with the folder where you'd like to have gemtext files and `/var/www/gmi/.certificates/` with the folder where you'd like to have your certificates stored. You also have to have to replace `example.org` with your domain name and if plan to speak in a different language than english in your gemini space than you should replace `en-US` with your countries language code (for example de-DE or fr-CA). - -## That's it! Now have agate running in a docker container! diff --git a/agate/start.sh b/agate/start.sh deleted file mode 100644 index e9d028b..0000000 --- a/agate/start.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -exec agate --content /gmi/ \ - --hostname ${HOSTNAME} \ - --lang ${LANG} - diff --git a/docker-compose.yaml b/docker-compose.yaml index 2f061c2..8f61984 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -7,18 +7,6 @@ services: build: ./aap image: elfrinjo/aap:latest -# prosody-0.11: -# build: ./prosody-0.11 -# image: elfrinjo/prosody-0.11:latest - toolbox: build: ./toolbox image: elfrinjo/toolbox:latest - -# agate: -# build: ./agate -# image: elfrinjo/agate:latest - -# pocketbase: -# build: ./pocketbase -# image: elfrinjo/pocketbase:latest diff --git a/pocketbase/Dockerfile b/pocketbase/Dockerfile deleted file mode 100644 index 40ba84e..0000000 --- a/pocketbase/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -FROM alpine:latest -LABEL maintainer "J. Elfring " - -RUN apk add --no-cache \ - ca-certificates \ - curl \ - unzip - -RUN mkdir /app \ - && mkdir /data \ - && chown daemon /data \ - && downloadurl=$(curl -s https://api.github.com/repos/pocketbase/pocketbase/releases/latest \ - | grep "browser_download_url" \ - | grep "linux_amd64" \ - | cut -d : -f 2,3 \ - | tr -d '\" ' ) \ - && curl --location --silent --output /tmp/pocketbase.zip \ - $downloadurl \ - && unzip -d /app /tmp/pocketbase.zip \ - && rm /tmp/pocketbase.zip \ - && chmod +x /app/pocketbase -ADD ./pocketbase.sh /app - -VOLUME /data -USER daemon -EXPOSE 8090 - -CMD [ "/bin/sh", "/app/pocketbase.sh" ] diff --git a/pocketbase/pocketbase.sh b/pocketbase/pocketbase.sh deleted file mode 100644 index fa22296..0000000 --- a/pocketbase/pocketbase.sh +++ /dev/null @@ -1,13 +0,0 @@ - -set -x -set -e - -if [ _${encryptionKey} != _ ] -then - enc="--encryptionEnv encryptionKey" -else - enc="" -fi - -# /app/pocketbase ${enc} --dir /data migrate -/app/pocketbase ${enc} --http 0.0.0.0:8090 --dir /data serve diff --git a/prosody-0.11/Dockerfile b/prosody-0.11/Dockerfile deleted file mode 100644 index a6d6438..0000000 --- a/prosody-0.11/Dockerfile +++ /dev/null @@ -1,86 +0,0 @@ -FROM alpine:edge - -LABEL maintainer "J. Elfring " - -## Install Packages -RUN apk add --no-cache \ - --update \ - ca-certificates \ - curl \ - libcrypto1.1 \ - libidn \ - lua5.2 \ - lua5.2-expat \ - lua5.2-filesystem \ - lua5.2-sec \ - lua5.2-socket \ - openssl - -## Install build envirnoment, build and remove unneeded things -## This is done in one step to reduce image size -RUN set -x \ - ## - ## Build Environment - && apk add --update \ - --no-cache \ - --virtual .build-deps \ - alpine-sdk \ - libidn-dev \ - linux-headers \ - lua5.2-busted \ - lua5.2-dev \ - openssl-dev \ - && ln -s /usr/bin/busted-5.2 /usr/local/bin/busted \ - ## - ## Prosody - && curl --output /prosody-trunk.tar.gz "https://hg.prosody.im/trunk/archive/0.11.tar.gz" \ - && mkdir /prosody-src \ - && cd /prosody-src \ - && tar xzf /prosody-trunk.tar.gz --strip 1 \ - && ./configure --no-example-certs \ - --cflags='-fPIC -Wall -std=c99 -pedantic -DWITHOUT_MALLINFO' \ - && make \ - && make test \ - && make install \ - && cd / \ - ## - ## Prosody Community Modules - && curl --silent --output /prosody-modules.tar.gz "https://hg.prosody.im/prosody-modules/archive/default.tar.gz" \ - && mkdir /usr/local/lib/prosody-community-modules \ - && cd /usr/local/lib/prosody-community-modules \ - && tar xzf /prosody-modules.tar.gz --strip 1 \ - && cd mod_admin_web/admin_web \ - && ./get_deps.sh \ - ## - ## Cleanup - && rm -rf /prosody-src \ - && rm -f /prosody-trunk.tar.gz \ - && rm -f /prosody-modules.tar.gz \ - && rm -f /usr/local/bin/busted \ - && apk del .build-deps - -## Some static files (e.g. for the invite module) -RUN mkdir /usr/local/var/lib/www \ - && mkdir -p /usr/local/var/lib/javascript/bootstrap4/css \ - && curl --silent --output /usr/local/var/lib/javascript/bootstrap4/css/bootstrap.min.css \ - "https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" \ - && mkdir -p /usr/local/var/lib/javascript/bootstrap4/js \ - && curl --silent --output /usr/local/var/lib/javascript/bootstrap4/js/bootstrap.min.js \ - "https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" \ - && mkdir -p /usr/local/var/lib/javascript/jquery \ - && curl --silent --output /usr/local/var/lib/javascript/jquery/jquery.min.js \ - "https://code.jquery.com/jquery-3.5.1.min.js" - -## Add Default config -COPY ./assets/prosody.cfg.lua /usr/local/etc/prosody/prosody.cfg.lua -RUN chown daemon:daemon /usr/local/var/lib/prosody - - - - -EXPOSE 5000 5222 5269 5347 5280 5281 -VOLUME ["/usr/local/etc/prosody", "/usr/local/var/lib/prosody"] - -USER daemon -ENTRYPOINT ["/usr/local/bin/prosody"] - diff --git a/prosody-0.11/README.md b/prosody-0.11/README.md deleted file mode 100644 index cde95af..0000000 --- a/prosody-0.11/README.md +++ /dev/null @@ -1,81 +0,0 @@ -## Prosody Docker image -Source: https://bitbucket.org/elfrinjo/dockerfiles/src/master/prosody-0.11/ - -Create an image for running prosody XMPP server version 0.11 -http://prosody.im/ on Alpine Linux. - -HINT: This is not an official image. Builds might not happen regularly. - -You will need to configure a vhost inside the config volume (prosody.cfg.lua). - -The certificate generation with prosodyctl does not work. -However, certificates can be put into the config volume. -I suggest acme.sh for communication with Letsencrypt. -https://github.com/Neilpang/acme.sh/wiki/Run-acme.sh-in-docker -You need to configure the certificates location inside prosodys config. - -IPORTANT: You really should add TLS. - -## Upgrading from 0.10 -The module configuration has to be updated: -- Replace mod_omemo_all_access with mod_profile -- Replace mod_mam_muc with mod_muc_mam -- Disable mod_omemo_all_access - -## Usage -Start the container with volumes for config and database. -Do not forget to customize your configuration! -. -. -```console -# docker run -d \ - -p 5000:5000 \ - -p 5222:5222 \ - -p 5269:5269 \ - -p 5280:5280 \ - -p 5281:5281 \ - --restart always \ - --name prosody \ - -v /etc/localtime:/etc/localtime:ro \ - -v prosody-cfg:/usr/local/etc/prosody:ro \ - -v prosody-data:/usr/local/var/lib/prosody \ - elfrinjo/prosody-0.11 -``` -. -. -To create the first user, exec into the running container and use prosodyctl. -```console -# docker exec -ti prosody bash -#/$ prosodyctl adduser JID -``` -. -. -To Create a certificate for you host: -```console -# docker pull neilpang/acme.sh -# docker run --rm -it \ - --volume prosody-acme:/acme.sh \ - --net=host \ - neilpang/acme.sh --issue \ - -d example.com \ - -d conference.example.com \ - --standalone -``` -. -. -To renew the certificate: -```console -# docker pull neilpang/acme.sh -# docker run --rm -it \ - --volume prosody-acme:/acme.sh \ - --net=host \ - neilpang/acme.sh --cron --standalone -# docker run --rm \ - -v prosody-acme:/acme.sh \ - -v prosody-cfg:/target \ - neilpang/acme.sh --install-cert \ - -d example.com \ - --key-file /target/certs/example.com/example.com.key \ - --fullchain-file /target/certs/example.com/fullchain.cer -# docker restart prosody -``` diff --git a/prosody-0.11/assets/prosody.cfg.lua b/prosody-0.11/assets/prosody.cfg.lua deleted file mode 100644 index 6ef9382..0000000 --- a/prosody-0.11/assets/prosody.cfg.lua +++ /dev/null @@ -1,256 +0,0 @@ --- Prosody Example Configuration File --- --- Information on configuring Prosody can be found on our --- website at http://prosody.im/doc/configure --- --- Tip: You can check that the syntax of this file is correct --- when you have finished by running: luac -p prosody.cfg.lua --- If there are any errors, it will let you know what and where --- they are, otherwise it will keep quiet. --- - --- ####################################################### --- # Global Settings # --- # Settings in this section apply to the whole server # --- # and are the default settings for any virtual hosts # --- ####################################################### - ----------------------- --- Server Settings -- ----------------------- -daemonize = false - --- Interfaces to listen on --- We are setting the ifaces to only listen on IPv4 addresses -interfaces = "*" -component_interface = "*" -local_interfaces = "127.0.0.1" - --- This is a (by default, empty) list of accounts that are admins --- for the server. Note that you must create the accounts separately --- (see http://prosody.im/doc/creating_accounts for info) --- Example: admins = { "user1@example.com", "user2@example.net" } --- TODO: Add your admin-user here ---admins = { } - --- Enable use of libevent for better performance under high load --- For more information see: http://prosody.im/doc/libevent -use_libevent = false; - --- These are the SSL/TLS-related settings. If you don't want --- to use SSL/TLS, you may comment or remove this --- We assume one certificate with subject-alternative-names for --- all components; else, seperate ssl configs inside the components will be --- needed. ---TODO: Configure this or you will regret it! ---https_ssl = { --- key = "certs/example.key"; --- certificate = "certs/fullchain.cer"; --- } ---ssl = { --- key = "certs/example.key"; --- certificate = "certs/fullchain.cer"; ---} - --- Logging configuration --- For advanced logging see http://prosody.im/doc/logging -log = { - info = "/dev/stdout"; -- Change 'info' to 'debug' for verbose logging - -- "*console"; -} - --- Common http server for static files -http_files_dir = "/usr/local/var/lib/www"; -libjs_path = "/usr/local/var/lib/javascript"; - --------------------- --- Select Modules -- --------------------- --- These paths are searched in the order specified, and before the default path -plugin_paths = { "/usr/local/lib/prosody-community-modules" } - --- This is the list of modules Prosody will load on startup. --- It looks for mod_modulename.lua in the plugins folder, so make sure that exists too. --- Documentation on modules can be found at: http://prosody.im/doc/modules -modules_enabled = { - -- Generally required - "roster"; -- Allow users to have a roster. Recommended ;) - "saslauth"; -- Authentication for clients and servers. Recommended if you want to log in. - "dialback"; -- s2s dialback support - "disco"; -- Service discovery - -- TODO: Enable TLS once you have certificates - --"tls"; -- Add support for secure TLS on c2s/s2s connections - - -- Not essential, but recommended - "carbons"; - "csi_simple"; - "pep"; - "private"; -- Private XML storage (for room bookmarks, etc.) - "vcard4"; - "vcard_legacy"; - - -- Nice to have - "version"; -- Replies to server version requests - "uptime"; -- Report how long server has been running - "time"; -- Let others know the time here on this server - "ping"; -- Replies to XMPP pings with pongs - "register"; -- Allow users to register on this server using a client and change passwords - "register_ibr"; - "mam"; - - -- Admin interfaces - "admin_adhoc"; -- Allows administration via an XMPP client that supports ad-hoc commands - --"admin_telnet"; -- Opens telnet console interface on localhost port 5582 - - -- HTTP modules - "websocket"; - "http_files"; -- Serve static files from a directory over HTTP - "http_libjs"; -- Serve static files from a directory over HTTP - "http_host_status_check"; - --"bosh"; -- Enable BOSH clients, aka "Jabber over HTTP" - - -- Other specific functionality - "watchregistrations"; -- Alert admins of registrations - "announce"; -- Send announcement to all online users - "server_contact_info"; - --"groups"; -- Shared roster support - --"posix"; -- POSIX functionality, sends server to background, enables syslog, etc. - --"welcome"; -- Welcome users who register accounts - --"motd"; -- Send a message to users when they log in - --"legacyauth"; -- Legacy authentication. Only used by some old clients and bots. - - -- Community Modules - "admin_blocklist"; - "admin_web"; - "blocking"; - "bookmarks"; - "cloud_notify"; - "password_reset"; - "privacy_lists"; - "smacks"; - "s2s_keepalive"; - -- "turncredentials"; -}; - --- Disable account creation by default, for security --- For more information see http://prosody.im/doc/creating_accounts -allow_registration = false -min_seconds_between_registrations = 600 - -------------------------- --- Connection Settings -- -------------------------- --- Force clients to use encrypted connections? This option will --- prevent clients from authenticating unless they are using encryption. -c2s_require_encryption = false - --- Force certificate authentication for server-to-server connections? --- This provides ideal security, but requires servers you communicate --- with to support encryption AND present valid, trusted certificates. --- NOTE: Your version of LuaSec must support certificate verification! --- For more information see http://prosody.im/doc/s2s#security -s2s_secure_auth = false - --- Many servers don't support encryption or have invalid or self-signed --- certificates. You can list domains here that will not be required to --- authenticate using certificates. They will be authenticated using DNS. ---s2s_insecure_domains = { "gmail.com" } - --- Even if you leave s2s_secure_auth disabled, you can still require valid --- certificates for some domains by specifying a list here. ---s2s_secure_domains = { "jabber.org" } - ----------------------- --- Storage Settings -- ----------------------- --- Select the authentication backend to use. The 'internal' providers --- use Prosody's configured data storage to store the authentication data. --- To allow Prosody to offer secure authentication mechanisms to clients, the --- default provider stores passwords in plaintext. If you do not trust your --- server please see http://prosody.im/doc/modules/mod_auth_internal_hashed --- for information about using the hashed backend. -authentication = "internal_hashed" - --- Select the storage backend to use. By default Prosody uses flat files --- in its configured data directory, but it also supports more backends --- through modules. An "sql" backend is included by default, but requires --- additional dependencies. See http://prosody.im/doc/storage for more info. -default_storage = "internal" -- Default is "internal" -storage = { - archive2 = "xmlarchive"; - muc_log = "xmlarchive"; -} - ------------------------------ --- Some messaging settings -- ------------------------------ - --- TODO: Provide some contact information -contact_info = { - abuse = { "mailto:abuse@example.com", "https://example.com/contact" }; - admin = { "https://exapmle.com/contact" }; - feedback = { "https://exapmle.com/contact" }; - security = { "https://exapmle.com/contact" }; - support = { "https://exapmle.com/contact" }; - sales = { "https://exapmle.com/contact" }; -}; - --- Configure Message Archive -archive_expires_after = "2m" - --- Logging for MUCs -muc_log_by_default = true; -- Enable logging by default (can be disabled in room config) -muc_log_all_rooms = false; -- set to true to force logging of all rooms -max_history_messages = 20; - --- STUN/TURN Server ---turncredentials_secret = "XXXXXXXXXXXXXXXXX"; ---turncredentials_host = "external.turn.server.exmple.com"; ---turncredentials_port = 8080; ---turncredentials_ttl = 86400; - --- ####################################################### --- # Virtual hosts # --- # You need to add a VirtualHost entry for each domain # --- # you wish Prosody to serve. # --- # Settings under each VirtualHost entry apply *only* # --- # to that host. # --- ####################################################### -VirtualHost "example.com" - --- ####################################################### --- # Components # --- # You can specify components to add hosts that # --- # provide special services, like multi-user # --- # conferences, and transports. # --- # For more information on components, see # --- # http://prosody.im/doc/components # --- ####################################################### - ----Set up a MUC (multi-user chat) room server on conference.example.com: -Component "conference.example.com" "muc" - modules_enabled = { - "muc_mam"; - "remote_roster"; - "vcard_muc"; - } - --- Set up a bytestream proxy for server-proxied file transfers: -Component "proxy65.example.com" "proxy65" - proxy65_acl = { - 'example.com', - }; - -Component "xmppfiles.example.com" "http_upload" - http_upload_file_size_limit = 5 * 1024 * 1024 -- 5 MB - http_upload_expire_after = 60 * 60 * 24 * 30 -- 30 Tage - http_upload_quota = 50 * 1024 * 1024 -- 50 MB - ----Set up an external component (default component port is 5347) --- --- External components allow adding various services, such as gateways/ --- transports to other networks like ICQ, MSN and Yahoo. For more info --- see: http://prosody.im/doc/components#adding_an_external_component --- ---Component "gateway.example.com" --- component_secret = "password"