# HG changeset patch # User Goffi # Date 1618590736 -7200 # Node ID 73e04040d577a24ed2b047898a43f5b716094593 # Parent c018c510a562da1cfdffdf1313ddeb76ad07d7a5 docker: update following name changes: `backend_e2e` now print properly backend logs diff -r c018c510a562 -r 73e04040d577 docker/backend-dev-e2e/Dockerfile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/backend-dev-e2e/Dockerfile Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,70 @@ +FROM libervia/backend:dev + +LABEL maintainer="Goffi " + +USER root + +ARG DEBIAN_FRONTEND=noninteractive + +RUN mkdir -m 777 /reports && \ + apt-get install -y --no-install-recommends \ + # firefox is needed to test Libervia via selenium + firefox-esr \ + # VNC/X11 server for visual mode + window manager + # using openbox as it allows to resize easily when doing manual debugging/tests + # and it adapts correctly when doing driver.set_window_size + tigervnc-standalone-server openbox \ + # useful for remote debugging + telnet net-tools \ + # needed to make Firefox trust system certificates + # cf. https://askubuntu.com/a/1036637 + p11-kit && \ + ln -fs /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so /usr/lib/firefox-esr/libnssckbi.so + +# we install pre-generated certificates so we can do tests with valid TLS +COPY --chown=root:root certificates/minica.pem /usr/local/share/ca-certificates/minica.crt +COPY --chown=root:tls-cert certificates/server1.test/cert.pem /usr/share/libervia/certificates/server1.test.pem +COPY --chown=root:tls-cert certificates/server1.test/key.pem /usr/share/libervia/certificates/server1.test-key.pem +RUN update-ca-certificates + +COPY --chown=root:root libervia.conf /etc/libervia.conf +COPY --chown=libervia:libervia scripts/entrypoint.sh /home/libervia/entrypoint_e2e.sh + +RUN \ + # we install webdriver (needed to control Firefox from Selenium) + # note: this is not absolutely necessary as long as we use helium because it includes + # is own webdriver + python -c 'from urllib.request import urlretrieve;\ + urlretrieve(\ + "https://github.com/mozilla/geckodriver/releases/download/v0.28.0"\ + "/geckodriver-v0.28.0-linux64.tar.gz", "/usr/local/bin/geckodriver.tar.gz")' && \ + cd /usr/local/bin && tar zxf geckodriver.tar.gz && rm -f geckodriver.tar.gz + +WORKDIR /home/libervia +USER libervia + +RUN \ + # pytest and its plugins + pip install pytest pytest-timeout pytest-dependency \ + # needed to test jp + sh \ + # needed to test libervia + helium \ + # needed to check sent emails + aiosmtpd \ + # useful for debugging + pudb + +RUN ./entrypoint.sh \ + # we create the file sharing component which will autoconnect when backend is started + jp profile create file_sharing -j files.server1.test -p "" --xmpp-password test_e2e -C file_sharing -A && \ + libervia-backend stop + +ENV LIBERVIA_TEST_REPORT_DIR=/reports +ENV DISPLAY=:0 +USER root +RUN apt-get install -y openbox +USER libervia +EXPOSE 5900 + +ENTRYPOINT ["/home/libervia/entrypoint_e2e.sh"] diff -r c018c510a562 -r 73e04040d577 docker/backend-dev-e2e/certificates/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/backend-dev-e2e/certificates/README Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,12 @@ +Those certificates are used to activate TLS for end-2-end testing (to be as +close as possible as production environment), they are used in other containers +needing TLS certificates (notably Prosody). + +To generate them, minica has been used. Minica can be found at https://github.com/jsha/minica. + +The following commands have been used: + +$ minica --domains "server1.test,*.server1.test,server2.test,server3.test,libervia-backend.test,libervia-web.test" +$ chmod 0644 minica.pem server1.test/cert.pem && chmod 0640 server1.test/key.pem + +Note that certificates are valid for 2 years and 30 days, so they must be renewed after this delay. diff -r c018c510a562 -r 73e04040d577 docker/backend-dev-e2e/certificates/minica-key.pem --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/backend-dev-e2e/certificates/minica-key.pem Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAvO1Mq06trCFWhsFzX9nBV+2/jJLJ0ishn5VkbeWkayXf609t +5Lg6cQealXMvAjPYK9Kuy4patmJ0iMT53/x6rmfbhbcp40Licuc7RGrpcNgbllAA +uIcosisIsfNzvOLkTA2+nxj7F7jkOKmvtoNU8zc5PKEObsrVd04CuhH4/WPwG4yT +Lfkpuq5Db3B5JRzghCWDgi1U9aTvCcHOjDbraBwJZSsYBN9RY+KFVHEDQSQaWAkj +UoimwRSmV+G65/+vjIkkEIKNmzQ+FaK5kYNFUjVz1gWiq8SAwL1p4B5pFJ35ze6c +WDko5OxccMs0k8NQJ8GxIvf5PmApr9lvIuUuCQIDAQABAoIBABLTCiqfgkp+X+K5 +b8eDKPKb69QT5CwexBDkj8crdICAm5kUpvx9JsWQXmS5v1tW0xk6utPpCzTVBouC +JOueepLaIlNmdrQAPBP62jrs9CmcPtNxUUERpopqI0mn2kZdzSWO0QmFMa+haowC +zFFBMLuzKu7RlWCQsUhb64WiuM52dOeQLzSCCzQK0+6a7Ox3uSwSCab+Q+LLbJDi +XKKnYlQR0oX1jl82GOxn36wpXKmOqSfqrrPMP4tvD1l97M+POJ8jbWBCn5aiWdqN +pWGgNpzzvsSEdnzDoKf+H/L7B9joNic+csch5KKF7WR6t1/MOj9hR9zf9bJKHRmC +eSnihIkCgYEA3yShCC1X8ljhIRf7t26oVTdmt/WFT676afq6gQJUVsOANq/QVsHB +gbDDltQSxQnNVOIt+wAIvz349KbSvPQ22+CpADQjuAdXumXctJOI38OydVW+0vPn +nkdearUEOayuxC9Ztsia9gF/udFWNZmYVi2PP5cNYPsxDS77g9EgNUsCgYEA2L7l +AUrBD6BKbhr4a81TKB9g37z1X8uD49dSq9KldnpDRybinzQLOTdc3tGOvrCVT/vI +PLB5B8AByfnta/pek+mAdoOxFuuF7v2m0OE37+ZkbR+haTETeplouLcZcnJcO4V3 +unQSGA6Gv4oMK85akWW2RqbRKxwQ8s4xeZ1d2XsCgYAw848kBRZ7AsZ4hRNiXTMu +ZpXxGzpgjak/oJJThNhNpFu3I4CX16+ErOtrZiCr+weBbJDbtFk24vh/ay1l6Ek0 +mSdZ9RY0499586ikMI1hUUQP+3x+OKWCEnQDAqznnhtEzIJo178u4otLj0HTRlul +5B69u3xi3xgWpUzl0PW42wKBgQCnOE/x+TyN07rYy9IRSa34bI0O0Pf2Wkt9Aujz +S2cAyz8Qq/13mm12TTJHbiHVGON5e+V2fShDRG2c6Ee2YMmLEEFeLif4aOlCA0wq +JzhCy9t7HUYopAZFNgpHSGxHkdd6zHQc0+QJz1tCdz0ApwnU10YTqCwEOHkS+uXM +0A5R9QKBgQCT2AgHJBHb6gksum1ipSc9v13x+P59hrbJ8sGxRZvQGfB7igXDxkBV +t0/nKltzyZFFNdTSUOHRLrygjTxpu93XWtpA36N7R8SbfGqMsRJeTfdV4vAZtR2x +EG0OyJaB/EfwlhXdAfF11jPoI6NQmBAeAoyWEbcitmuR6fxrqYWOZQ== +-----END RSA PRIVATE KEY----- diff -r c018c510a562 -r 73e04040d577 docker/backend-dev-e2e/certificates/minica.pem --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/backend-dev-e2e/certificates/minica.pem Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSzCCAjOgAwIBAgIIYcWiSXEWKycwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE +AxMVbWluaWNhIHJvb3QgY2EgNjFjNWEyMCAXDTIwMTExOTE3MTAwMFoYDzIxMjAx +MTE5MTcxMDAwWjAgMR4wHAYDVQQDExVtaW5pY2Egcm9vdCBjYSA2MWM1YTIwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC87UyrTq2sIVaGwXNf2cFX7b+M +ksnSKyGflWRt5aRrJd/rT23kuDpxB5qVcy8CM9gr0q7Lilq2YnSIxPnf/HquZ9uF +tynjQuJy5ztEaulw2BuWUAC4hyiyKwix83O84uRMDb6fGPsXuOQ4qa+2g1TzNzk8 +oQ5uytV3TgK6Efj9Y/AbjJMt+Sm6rkNvcHklHOCEJYOCLVT1pO8Jwc6MNutoHAll +KxgE31Fj4oVUcQNBJBpYCSNSiKbBFKZX4brn/6+MiSQQgo2bND4VormRg0VSNXPW +BaKrxIDAvWngHmkUnfnN7pxYOSjk7FxwyzSTw1AnwbEi9/k+YCmv2W8i5S4JAgMB +AAGjgYYwgYMwDgYDVR0PAQH/BAQDAgKEMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggr +BgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRQfEdSX8zI0mvb +VoU7AsYtFA5W8zAfBgNVHSMEGDAWgBRQfEdSX8zI0mvbVoU7AsYtFA5W8zANBgkq +hkiG9w0BAQsFAAOCAQEAA6LLnPz043imkMXaeXgAtsKk2JYdpGAZeCeHolzOFpMQ +AQgq+3PkVbcpopbXtXxuiTTAjgVIoMnn6tKQbcSeDP6ydOJhjrDfUN8qx03peYw0 +HOqCvGwqssR7ew6MhyVPSyJOdz74NrSoZdxn7bz369A+R6BG7QyKyl6OlW4x+tuI +htLQ9vWOxVRBORuEFQ/F3hxwDJY1aT5oCEYzOy7pvOrAh+gnoAb++isi/uwxSufX +GQs1jejANCi+Rkxe918woDH4mosr9ypRapWPJU0flyxlQUQyAInu4oyDYP3Peits +D1Y5DkLN/dxIxg1drlNgIGDOCxbV85iDKVPnQ5fmeA== +-----END CERTIFICATE----- diff -r c018c510a562 -r 73e04040d577 docker/backend-dev-e2e/certificates/server1.test/cert.pem --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/backend-dev-e2e/certificates/server1.test/cert.pem Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDijCCAnKgAwIBAgIITwyWOI+1bQ8wDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE +AxMVbWluaWNhIHJvb3QgY2EgNjFjNWEyMB4XDTIxMDQxNDE2MjA0NFoXDTIzMDUx +NDE2MjA0NFowFzEVMBMGA1UEAxMMc2VydmVyMS50ZXN0MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAtXAh2Mn5eIFLI5v1Zz8+BRsPKfjn1RBBs+ZVVysJ +ez4DOOXcouWjOqcMPhWK/lN3NNm3SOWJQRJEZjHaU197YioX1cr1KP1pfAWlm03t +MZpf/XoeoKpV+6svM2m6emNh6Y812ATin2DIigm2b4UrHiP8Seppd84dReGdpaD9 +7zCZBKv5fHCwcY+irjsV+1vRapLDvDMIL/6Vk8Fw3m9UlIhdZNudTKgxo8lYbhuo +QsyhG0ydALgp+eeNKnZZdBCpdFOtZztbrS0DifQvkKxbv7+V3IAQ+4lLAfLoFNuV +H5cukfuJbR9UjyqvBH16yCE2VNvL+dDZXYmh/q3yTF0MgQIDAQABo4HQMIHNMA4G +A1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYD +VR0TAQH/BAIwADAfBgNVHSMEGDAWgBRQfEdSX8zI0mvbVoU7AsYtFA5W8zBtBgNV +HREEZjBkggxzZXJ2ZXIxLnRlc3SCDiouc2VydmVyMS50ZXN0ggxzZXJ2ZXIyLnRl +c3SCDHNlcnZlcjMudGVzdIIVbGliZXJ2aWEtYmFja2VuZC50ZXN0ghFsaWJlcnZp +YS13ZWIudGVzdDANBgkqhkiG9w0BAQsFAAOCAQEAetIuuZd7O0G8ssueqddVfedM +syL4NZp/I6AWy9qiUcKf9lhGtLE3AblL5fhHanty94B4EyW5+8fjSrSSSRbUYkFH +dbS41ptzuPGtU9S7OFp7C1TAZHeAgCdvJ4ZnD2YFNQXJ89bp+ZEi4Znu1avqckJP +gMAd695gZaobZzehwAG00Xd9ELVku3Cnu4gsxMbgvcRFqq4Bplk/YYtDtd9FG2Qr +mSBuUGwGikr9C4xEUw69uIq1SK98qaOBEwUgKYb/Rvh03OP5F2u36zdH8J3W/Mjv +OGYo4RCLZFG0CntYLFTWOAoYRs7C7dlgwXRNgaNaRiseiPDka1DAaf6BQ8riMw== +-----END CERTIFICATE----- diff -r c018c510a562 -r 73e04040d577 docker/backend-dev-e2e/certificates/server1.test/key.pem --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/backend-dev-e2e/certificates/server1.test/key.pem Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAtXAh2Mn5eIFLI5v1Zz8+BRsPKfjn1RBBs+ZVVysJez4DOOXc +ouWjOqcMPhWK/lN3NNm3SOWJQRJEZjHaU197YioX1cr1KP1pfAWlm03tMZpf/Xoe +oKpV+6svM2m6emNh6Y812ATin2DIigm2b4UrHiP8Seppd84dReGdpaD97zCZBKv5 +fHCwcY+irjsV+1vRapLDvDMIL/6Vk8Fw3m9UlIhdZNudTKgxo8lYbhuoQsyhG0yd +ALgp+eeNKnZZdBCpdFOtZztbrS0DifQvkKxbv7+V3IAQ+4lLAfLoFNuVH5cukfuJ +bR9UjyqvBH16yCE2VNvL+dDZXYmh/q3yTF0MgQIDAQABAoIBAFCxZSxAb6Yrgpp8 +s0DO/KtSpITbQWgeCcqTxyK0bkwUgWRdvqnoDZd5UdWOyTlhL6QerAhMpaV+FVOK +Gnp3/azj4aPg1vX69l4FOOkAWFx2NvjJxjNYblM2iBCKljf2WUaBvcWsLooJhkb2 +GOAyTsHh6UOKcIuq7JP2yqEuH6GvsD9z5B82d/uWtCMlf4PA26R6GGrEaJ4ARY0y +ePthWmYOJdZi2CLf5RTfd3Y89EKkYbyj+/bmGTFrPThJwBcqjiTV+/Mu3rE7RG/i +hkZWZi7Q319w/i83In0vHReSb/DOiwjYp+ChPjvKdv0DjL4RyfX5vSkZDDC+LKI8 +5fwEgy0CgYEA51LSAd2DGtYieeQc9jGiUtXzbxvTObGP01NcCX7iS04EF1czj/Ur +Zrqwsc7yKkdJWaAn12JOolPOZtjEeU4Q3/Oyen9LdxsfPNzpHKqlcOJ/xVWZ/ikY +WLn5nwpD8HLkx+WZj7TzbBqcs9UiKRkW7bUC3A7KDeBH/nMBDjWwJjcCgYEAyMr/ +AlpRf7OgYnOgEFYcHbNNzp2b7p5lK+8eDrEiRW+U3aT00f8+ZeqF6wSe0hn3gs94 +6IzRtrr0SBObi7My5t6duz56a6K3NE4JhI+3/P2YyQy/2lhYUkA7CG1YMJzvkVaM +bSuY9bMptzVpjL6Sn3kyHoW/R9d9i3n0ipBDhwcCgYEA2bLy2ziJwv7VkVsh+nx5 +pHWf1Ogd4IT/s0UXMASOmYpBhWnWp9t2zgZSdfQpqapPGJ8F/8iP8mrmq5nDRdo3 +PVyOkoQsFFqdCl1osUbTzioLTz6hXzVzqUTU7Fzv1WF7d7jXzQvhrtJYuVGTBZSM +JIeeulTcyTRS7N90ldfm//8CgYEAl1ia+jUFtRG51Dt+7JFbQ+/At/oIbMWrUIA9 +0akmQdwnAyGw/xA7AirRoiGrbIXyEAE+C1sJP4iPVDyjQ5tgxLALh/VB5RuSp7Qi +bG6/qcuke/ZGLdflSqnrVSDGFm5UDOKFmkwAUUIoMVXrJxEGB3ockvERCp+cm6Li +9gZjP8UCgYATWrDUb3+LOVHIVuYcrd9CDfO7OHT1yxmnef2hBYYs8MQ2ewVBTWkq +jzTPuUCub6T72uVpefOciBByqbgUUUnXgfX8nTT2BEBGjoubf3/77RvsEnrEGEI/ +XncILicM1dwQXqR5fWDcpWRhehIzlzF70iZ3Ws1QC63gv4Z6VGifMQ== +-----END RSA PRIVATE KEY----- diff -r c018c510a562 -r 73e04040d577 docker/backend-dev-e2e/libervia.conf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/backend-dev-e2e/libervia.conf Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,10 @@ +[DEFAULT] +xmpp_domain = server1.test +email_server = libervia-backend.test +email_port = 8025 +email_admins_list = admin@server1.test + +[component file_sharing] +tls_certificate = /usr/share/libervia/certificates/server1.test.pem +tls_private_key = /usr/share/libervia/certificates/server1.test-key.pem +http_upload_public_facing_url = https://libervia-backend.test:8888 diff -r c018c510a562 -r 73e04040d577 docker/backend-dev-e2e/scripts/entrypoint.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/backend-dev-e2e/scripts/entrypoint.sh Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,7 @@ +#!/bin/sh + +eval $(dbus-launch --sh-syntax) + +nohup /usr/bin/Xtigervnc -geometry 1024x768 -desktop "Libervia e2e test" -rfbport 5900 -SecurityTypes None :0 & +nohup openbox & +exec libervia-backend fg diff -r c018c510a562 -r 73e04040d577 docker/backend-dev/Dockerfile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/backend-dev/Dockerfile Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,51 @@ +FROM debian:buster-slim + +LABEL maintainer="Goffi " + +ARG DEBIAN_FRONTEND=noninteractive + +RUN apt-get update && apt-get upgrade -y && \ + apt-get install -y --no-install-recommends locales python3-dev python3-venv python3-wheel mercurial libxml2-dev libxslt-dev libcairo2-dev libjpeg-dev libgirepository1.0-dev libdbus-1-dev libdbus-glib-1-dev dbus-x11 cmake && \ + \ + # will be used to put many SàT specific data + mkdir -p /usr/share/libervia/certificates && \ + addgroup tls-cert --gid 9999 && \ + chown :tls-cert /usr/share/libervia/certificates && \ + chmod 2770 /usr/share/libervia/certificates && \ + # it's better to have a dedicated user + useradd -m libervia && adduser libervia tls-cert && \ + # we'll put all source there to have an easy mount point + mkdir /src && chown libervia:libervia /src && \ + \ + # we need UTF-8 locale + sed -i "s/# en_US.UTF-8/en_US.UTF-8/" /etc/locale.gen && locale-gen && \ + \ + # we need a TCP socket for D-Bus + sed -i "s&unix:tmpdir=/tmp&\0\n tcp:host=localhost,bind=*,port=55555,family=ipv4\n ANONYMOUS\n &" /usr/share/dbus-1/session.conf + +ENV LC_ALL en_US.UTF-8 + +WORKDIR /home/libervia +USER libervia + +RUN python3 -m venv libervia_env && libervia_env/bin/pip install -U pip wheel && cd /src && \ + # We install thoses packages in editable mode, so we can replace them easily with volumes. + # We need to move *.egg-info (generated by pip) out of src dirs, otherwise mounting + # local repos without it them cause troubles + hg clone https://repos.goffi.org/urwid-satext && ~/libervia_env/bin/pip install -e urwid-satext && \ + mv urwid-satext/urwid_satext.egg-info ~/libervia_env/lib/python3.*/site-packages && \ + hg clone https://repos.goffi.org/sat_tmp && ~/libervia_env/bin/pip install -e sat_tmp && \ + mv sat_tmp/sat_tmp.egg-info ~/libervia_env/lib/python3.*/site-packages && \ + hg clone https://repos.goffi.org/sat_templates && ~/libervia_env/bin/pip install -e sat_templates && \ + mv sat_templates/sat_templates.egg-info ~/libervia_env/lib/python3.*/site-packages && \ + hg clone https://repos.goffi.org/sat_media && \ + hg clone https://repos.goffi.org/sat && ~/libervia_env/bin/pip install -e 'sat[SVG]' && \ + mv sat/sat.egg-info ~/libervia_env/lib/python3.*/site-packages + +ENV DBUS_SESSION_BUS_ADDRESS=tcp:host=backend,port=55555,family=ipv4 +ENV PATH=/home/libervia/libervia_env/bin:$PATH + +COPY --chown=root:root libervia.conf /etc/_libervia.conf +COPY --chown=libervia:libervia scripts/entrypoint.sh /home/libervia/ + +ENTRYPOINT ["/home/libervia/entrypoint.sh"] diff -r c018c510a562 -r 73e04040d577 docker/backend-dev/libervia.conf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/backend-dev/libervia.conf Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,6 @@ +[DEFAULT] +media_dir = /src/sat_media + +[cli] +# FIXME: default "auto" value cause trouble +background = dark diff -r c018c510a562 -r 73e04040d577 docker/backend-dev/scripts/entrypoint.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/backend-dev/scripts/entrypoint.sh Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,19 @@ +#!/bin/sh + +eval $(dbus-launch --sh-syntax) + +# default, backend is launched in foreground +if [ $# -eq 0 ] +then + exec libervia-backend fg +fi + +# backend is launched with an explicit subcommand +if [ $1 = fg -o $1 = bg -o $1 = debug -o $1 = stop -o $1 = status ] +then + exec libervia-backend "$@" +fi + +# a whole command is specified +libervia-backend bg +exec "$@" diff -r c018c510a562 -r 73e04040d577 docker/backend/Dockerfile --- a/docker/backend/Dockerfile Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -FROM debian:buster-slim - -LABEL maintainer="Goffi " - -ARG DEBIAN_FRONTEND=noninteractive - -RUN apt-get update && apt-get upgrade -y && \ - apt-get install -y --no-install-recommends locales python3-dev python3-venv python3-wheel mercurial libxml2-dev libxslt-dev libcairo2-dev libjpeg-dev libgirepository1.0-dev libdbus-1-dev libdbus-glib-1-dev dbus-x11 cmake && \ - \ - # will be used to put many SàT specific data - mkdir -p /usr/share/sat/certificates && \ - addgroup tls-cert --gid 9999 && \ - chown :tls-cert /usr/share/sat/certificates && \ - chmod 2770 /usr/share/sat/certificates && \ - # it's better to have a dedicated user - useradd -m sat && adduser sat tls-cert && \ - # we'll put all source there to have an easy mount point - mkdir /src && chown sat:sat /src && \ - \ - # we need UTF-8 locale - sed -i "s/# en_US.UTF-8/en_US.UTF-8/" /etc/locale.gen && locale-gen && \ - \ - # we need a TCP socket for D-Bus - sed -i "s&unix:tmpdir=/tmp&\0\n tcp:host=localhost,bind=*,port=55555,family=ipv4\n ANONYMOUS\n &" /usr/share/dbus-1/session.conf - -ENV LC_ALL en_US.UTF-8 - -WORKDIR /home/sat -USER sat - -RUN python3 -m venv sat_env && sat_env/bin/pip install wheel && cd /src && \ - # We install thoses packages in editable mode, so we can replace them easily with volumes. - # We need to move *.egg-info (generated by pip) out of src dirs, otherwise mounting - # local repos without it them cause troubles - hg clone https://repos.goffi.org/urwid-satext && ~/sat_env/bin/pip install -e urwid-satext && \ - mv urwid-satext/urwid_satext.egg-info ~/sat_env/lib/python3.*/site-packages && \ - hg clone https://repos.goffi.org/sat_tmp && ~/sat_env/bin/pip install -e sat_tmp && \ - mv sat_tmp/sat_tmp.egg-info ~/sat_env/lib/python3.*/site-packages && \ - hg clone https://repos.goffi.org/sat_templates && ~/sat_env/bin/pip install -e sat_templates && \ - mv sat_templates/sat_templates.egg-info ~/sat_env/lib/python3.*/site-packages && \ - hg clone https://repos.goffi.org/sat_media && \ - hg clone https://repos.goffi.org/sat && ~/sat_env/bin/pip install -e 'sat[SVG]' && \ - mv sat/sat.egg-info ~/sat_env/lib/python3.*/site-packages - -ENV DBUS_SESSION_BUS_ADDRESS=tcp:host=sat,port=55555,family=ipv4 -ENV PATH=/home/sat/sat_env/bin:$PATH - -COPY --chown=root:root sat.conf /etc/_sat.conf -COPY --chown=sat:sat scripts/entrypoint.sh /home/sat/ - -ENTRYPOINT ["/home/sat/entrypoint.sh"] diff -r c018c510a562 -r 73e04040d577 docker/backend/sat.conf --- a/docker/backend/sat.conf Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -[DEFAULT] -media_dir = /src/sat_media - -[jp] -# FIXME: default "auto" value cause trouble -background = dark diff -r c018c510a562 -r 73e04040d577 docker/backend/scripts/entrypoint.sh --- a/docker/backend/scripts/entrypoint.sh Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -#!/bin/sh - -eval $(dbus-launch --sh-syntax) - -# default, backend is launched in foreground -if [ $# -eq 0 ] -then - exec sat fg -fi - -# backend is launched with an explicit subcommand -if [ $1 = fg -o $1 = bg -o $1 = debug -o $1 = stop -o $1 = status ] -then - exec sat "$@" -fi - -# a whole command is specified -sat bg -exec "$@" diff -r c018c510a562 -r 73e04040d577 docker/backend_e2e/Dockerfile --- a/docker/backend_e2e/Dockerfile Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -FROM salutatoi/sat - -LABEL maintainer="Goffi " - -USER root - -ARG DEBIAN_FRONTEND=noninteractive - -RUN mkdir -m 777 /reports && \ - apt-get install -y --no-install-recommends \ - # firefox is needed to test Libervia via selenium - firefox-esr \ - # VNC/X11 server for visual mode + window manager - # using openbox as it allows to resize easily when doing manual debugging/tests - # and it adapts correctly when doing driver.set_window_size - tigervnc-standalone-server openbox \ - # useful for remote debugging - telnet net-tools \ - # needed to make Firefox trust system certificates - # cf. https://askubuntu.com/a/1036637 - p11-kit && \ - ln -fs /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so /usr/lib/firefox-esr/libnssckbi.so - -# we install pre-generated certificates so we can do tests with valid TLS -COPY --chown=root:root certificates/minica.pem /usr/local/share/ca-certificates/minica.crt -COPY --chown=root:tls-cert certificates/server1.test/cert.pem /usr/share/sat/certificates/server1.test.pem -COPY --chown=root:tls-cert certificates/server1.test/key.pem /usr/share/sat/certificates/server1.test-key.pem -RUN update-ca-certificates - -COPY --chown=root:root sat.conf /etc/sat.conf - -RUN \ - # we install webdriver (needed to control Firefox from Selenium) - # note: this is not absolutely necessary as long as we use helium because it includes - # is own webdriver - python -c 'from urllib.request import urlretrieve;\ - urlretrieve(\ - "https://github.com/mozilla/geckodriver/releases/download/v0.28.0"\ - "/geckodriver-v0.28.0-linux64.tar.gz", "/usr/local/bin/geckodriver.tar.gz")' && \ - cd /usr/local/bin && tar zxf geckodriver.tar.gz && rm -f geckodriver.tar.gz - -WORKDIR /home/sat -USER sat - -RUN \ - # pytest and its plugins - pip install pytest pytest-timeout pytest-dependency \ - # needed to test jp - sh \ - # needed to test libervia - helium \ - # needed to check sent emails - aiosmtpd \ - # useful for debugging - pudb - -RUN ./entrypoint.sh \ - # we create the file sharing component which will autoconnect when backend is started - jp profile create file_sharing -j files.server1.test -p "" --xmpp-password test_e2e -C file_sharing -A && \ - sat stop - -ENV SAT_TEST_REPORT_DIR=/reports -ENV DISPLAY=:0 -USER root -RUN apt-get install -y openbox -USER sat -CMD /usr/bin/Xtigervnc -geometry 1024x768 -desktop "SàT e2e test" -rfbport 5900 -SecurityTypes None :0 & sleep 1 && openbox -EXPOSE 5900 diff -r c018c510a562 -r 73e04040d577 docker/backend_e2e/certificates/README --- a/docker/backend_e2e/certificates/README Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -Those certificates are used to activate TLS for end-2-end testing (to be as -close as possible as production environment), they are used in other containers -needing TLS certificates (notably Prosody). - -To generate them, minica has been used. Minica can be found at https://github.com/jsha/minica. - -The following commands have been used: - -$ minica --domains "server1.test,*.server1.test,server2.test,server3.test,sat.test,libervia,libervia.test" -$ chmod 0644 minica.pem server1.test/cert.pem && chmod 0640 server1.test/key.pem - -Note that certificates are valid for 2 years and 30 days, so they must be renewed after this delay. diff -r c018c510a562 -r 73e04040d577 docker/backend_e2e/certificates/minica-key.pem --- a/docker/backend_e2e/certificates/minica-key.pem Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEpAIBAAKCAQEAvO1Mq06trCFWhsFzX9nBV+2/jJLJ0ishn5VkbeWkayXf609t -5Lg6cQealXMvAjPYK9Kuy4patmJ0iMT53/x6rmfbhbcp40Licuc7RGrpcNgbllAA -uIcosisIsfNzvOLkTA2+nxj7F7jkOKmvtoNU8zc5PKEObsrVd04CuhH4/WPwG4yT -Lfkpuq5Db3B5JRzghCWDgi1U9aTvCcHOjDbraBwJZSsYBN9RY+KFVHEDQSQaWAkj -UoimwRSmV+G65/+vjIkkEIKNmzQ+FaK5kYNFUjVz1gWiq8SAwL1p4B5pFJ35ze6c -WDko5OxccMs0k8NQJ8GxIvf5PmApr9lvIuUuCQIDAQABAoIBABLTCiqfgkp+X+K5 -b8eDKPKb69QT5CwexBDkj8crdICAm5kUpvx9JsWQXmS5v1tW0xk6utPpCzTVBouC -JOueepLaIlNmdrQAPBP62jrs9CmcPtNxUUERpopqI0mn2kZdzSWO0QmFMa+haowC -zFFBMLuzKu7RlWCQsUhb64WiuM52dOeQLzSCCzQK0+6a7Ox3uSwSCab+Q+LLbJDi -XKKnYlQR0oX1jl82GOxn36wpXKmOqSfqrrPMP4tvD1l97M+POJ8jbWBCn5aiWdqN -pWGgNpzzvsSEdnzDoKf+H/L7B9joNic+csch5KKF7WR6t1/MOj9hR9zf9bJKHRmC -eSnihIkCgYEA3yShCC1X8ljhIRf7t26oVTdmt/WFT676afq6gQJUVsOANq/QVsHB -gbDDltQSxQnNVOIt+wAIvz349KbSvPQ22+CpADQjuAdXumXctJOI38OydVW+0vPn -nkdearUEOayuxC9Ztsia9gF/udFWNZmYVi2PP5cNYPsxDS77g9EgNUsCgYEA2L7l -AUrBD6BKbhr4a81TKB9g37z1X8uD49dSq9KldnpDRybinzQLOTdc3tGOvrCVT/vI -PLB5B8AByfnta/pek+mAdoOxFuuF7v2m0OE37+ZkbR+haTETeplouLcZcnJcO4V3 -unQSGA6Gv4oMK85akWW2RqbRKxwQ8s4xeZ1d2XsCgYAw848kBRZ7AsZ4hRNiXTMu -ZpXxGzpgjak/oJJThNhNpFu3I4CX16+ErOtrZiCr+weBbJDbtFk24vh/ay1l6Ek0 -mSdZ9RY0499586ikMI1hUUQP+3x+OKWCEnQDAqznnhtEzIJo178u4otLj0HTRlul -5B69u3xi3xgWpUzl0PW42wKBgQCnOE/x+TyN07rYy9IRSa34bI0O0Pf2Wkt9Aujz -S2cAyz8Qq/13mm12TTJHbiHVGON5e+V2fShDRG2c6Ee2YMmLEEFeLif4aOlCA0wq -JzhCy9t7HUYopAZFNgpHSGxHkdd6zHQc0+QJz1tCdz0ApwnU10YTqCwEOHkS+uXM -0A5R9QKBgQCT2AgHJBHb6gksum1ipSc9v13x+P59hrbJ8sGxRZvQGfB7igXDxkBV -t0/nKltzyZFFNdTSUOHRLrygjTxpu93XWtpA36N7R8SbfGqMsRJeTfdV4vAZtR2x -EG0OyJaB/EfwlhXdAfF11jPoI6NQmBAeAoyWEbcitmuR6fxrqYWOZQ== ------END RSA PRIVATE KEY----- diff -r c018c510a562 -r 73e04040d577 docker/backend_e2e/certificates/minica.pem --- a/docker/backend_e2e/certificates/minica.pem Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDSzCCAjOgAwIBAgIIYcWiSXEWKycwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE -AxMVbWluaWNhIHJvb3QgY2EgNjFjNWEyMCAXDTIwMTExOTE3MTAwMFoYDzIxMjAx -MTE5MTcxMDAwWjAgMR4wHAYDVQQDExVtaW5pY2Egcm9vdCBjYSA2MWM1YTIwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC87UyrTq2sIVaGwXNf2cFX7b+M -ksnSKyGflWRt5aRrJd/rT23kuDpxB5qVcy8CM9gr0q7Lilq2YnSIxPnf/HquZ9uF -tynjQuJy5ztEaulw2BuWUAC4hyiyKwix83O84uRMDb6fGPsXuOQ4qa+2g1TzNzk8 -oQ5uytV3TgK6Efj9Y/AbjJMt+Sm6rkNvcHklHOCEJYOCLVT1pO8Jwc6MNutoHAll -KxgE31Fj4oVUcQNBJBpYCSNSiKbBFKZX4brn/6+MiSQQgo2bND4VormRg0VSNXPW -BaKrxIDAvWngHmkUnfnN7pxYOSjk7FxwyzSTw1AnwbEi9/k+YCmv2W8i5S4JAgMB -AAGjgYYwgYMwDgYDVR0PAQH/BAQDAgKEMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggr -BgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRQfEdSX8zI0mvb -VoU7AsYtFA5W8zAfBgNVHSMEGDAWgBRQfEdSX8zI0mvbVoU7AsYtFA5W8zANBgkq -hkiG9w0BAQsFAAOCAQEAA6LLnPz043imkMXaeXgAtsKk2JYdpGAZeCeHolzOFpMQ -AQgq+3PkVbcpopbXtXxuiTTAjgVIoMnn6tKQbcSeDP6ydOJhjrDfUN8qx03peYw0 -HOqCvGwqssR7ew6MhyVPSyJOdz74NrSoZdxn7bz369A+R6BG7QyKyl6OlW4x+tuI -htLQ9vWOxVRBORuEFQ/F3hxwDJY1aT5oCEYzOy7pvOrAh+gnoAb++isi/uwxSufX -GQs1jejANCi+Rkxe918woDH4mosr9ypRapWPJU0flyxlQUQyAInu4oyDYP3Peits -D1Y5DkLN/dxIxg1drlNgIGDOCxbV85iDKVPnQ5fmeA== ------END CERTIFICATE----- diff -r c018c510a562 -r 73e04040d577 docker/backend_e2e/certificates/server1.test/cert.pem --- a/docker/backend_e2e/certificates/server1.test/cert.pem Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDgzCCAmugAwIBAgIIZiX7tomjsm8wDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE -AxMVbWluaWNhIHJvb3QgY2EgNjFjNWEyMB4XDTIwMTExOTE3MTAwMFoXDTIyMTIx -OTE3MTAwMFowFzEVMBMGA1UEAxMMc2VydmVyMS50ZXN0MIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEAqO9edKoh9DZfVeb8n0iCJ375QqVVHuS3AI22VTRL -sa6lYYjjlcag4GeJScZNnQzdBHLRfsZBVKIYbPPuB4+p7w5V56n61kPd7oWTEfe8 -UYvgQOcEo7u7EDMIgFkgtMLJBMUBLPdBwNjeQdFk+yg+pUls7LXXzZXZsrupLfvP -YP81xZiD9BHk6/D0ia4oaQ873VAZwuFviqO+7asn46AyR94n3MlABG7iyKoSs/rO -Yh13cFEEvbIE/nHTr+rbeswHUtZwKhqQ83iuAphTUlNliAiGHKPxLjojYjGGq7ES -6BUs4REeyavaYFzyh3JUyicBYqLvMPy449PVkCTF//XRAQIDAQABo4HJMIHGMA4G -A1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYD -VR0TAQH/BAIwADAfBgNVHSMEGDAWgBRQfEdSX8zI0mvbVoU7AsYtFA5W8zBmBgNV -HREEXzBdggxzZXJ2ZXIxLnRlc3SCDiouc2VydmVyMS50ZXN0ggxzZXJ2ZXIyLnRl -c3SCDHNlcnZlcjMudGVzdIIIc2F0LnRlc3SCCGxpYmVydmlhgg1saWJlcnZpYS50 -ZXN0MA0GCSqGSIb3DQEBCwUAA4IBAQCGar+WGZZVouJHCTcI5NEIqE7+j8ooLAQA -r57rYnjOQEVp0hCM4gGUoolp0iq7GC6Ep8hptRwSlvm4P6nR4MrXoqE+La/qrygO -1aue4td+4HUFLyPkjMRwOA5Mzg0reGcOI+Ptc47zyIgij+HmUROu/D/Xdoat0LGN -rzqmaTYhZ7Ifh2XtcZPfkFmYh/JEF7qgspNatOmka2XSLwzzRDTERN8Z04rB2NfA -n2xoadafPDu9ZnIrWNi+MVvvNwtppWZ1TXHaYEWW2dx2nXdCbsIJaUwaKDAfyppk -+SHxauKPbpvx8m38nKw7cC54miMR1PHyIspK8Fpc84tMCDU/vCfL ------END CERTIFICATE----- diff -r c018c510a562 -r 73e04040d577 docker/backend_e2e/certificates/server1.test/key.pem --- a/docker/backend_e2e/certificates/server1.test/key.pem Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEpQIBAAKCAQEAqO9edKoh9DZfVeb8n0iCJ375QqVVHuS3AI22VTRLsa6lYYjj -lcag4GeJScZNnQzdBHLRfsZBVKIYbPPuB4+p7w5V56n61kPd7oWTEfe8UYvgQOcE -o7u7EDMIgFkgtMLJBMUBLPdBwNjeQdFk+yg+pUls7LXXzZXZsrupLfvPYP81xZiD -9BHk6/D0ia4oaQ873VAZwuFviqO+7asn46AyR94n3MlABG7iyKoSs/rOYh13cFEE -vbIE/nHTr+rbeswHUtZwKhqQ83iuAphTUlNliAiGHKPxLjojYjGGq7ES6BUs4REe -yavaYFzyh3JUyicBYqLvMPy449PVkCTF//XRAQIDAQABAoIBAFt8PdfKJtcc9uYL -UDVmS+3dqlj4Ni+jxqMLG3nq9y8DGFbIjg8XYRoFl+iW9oMdaze0glU4Qjr2CWo/ -c2Eu4OUwCz+I4ulUGYTJW4r4cUhsCoa7VNzilnxAVtNC8R5S+g+WLHvQbxBjoYFd -R2VoNvzF1bIfC/4ur5VGYWkgm/63dTdDd2dJoQp30cypL5lL6v+T3FxkcTEYYuu2 -Q05mwXZ/zekzwQqPKX0/M/UxlqeItlM7rsIp7+baAdoXEzxzadGkFdUgE+jh5fwG -gdWiTJLSToZrlfpTthkZ3IegDhHHBlRHR8BQq0MypR/j6eM/iONQnvuODx6eaTqQ -Lf/h1UECgYEAxVbiqgDNp3z/D9bwJfYWneLrdJ6Bm8NJiJLEG8nlCZW+34wRRyNR -Jlwk6aPzT3ibf6OPaAvCnH0ENBGUyxe/Ri2IeWPF5nmbESq6TqheKJdmFIPQPTCS -KoLWYjbLpTN22Pi8S/OgwbVxyZ09bLjGrjhsHw6GnbZvzPt3T3pvMQkCgYEA2yb4 -oBpeV4A085qt79mq4SK6093f/D9d7yWNmtBlJM5cCurZukvYzNSsGjjwIjVjBlla -mhec+fsXmFUjYefRDLs6vNZuVkrSwC5E9uwDuG89W15BfaIyQjHpAyLFWM2eTivD -Hmr4F8gJ3Rgac1KfdcnxyBOJgwFDsOuSIOT8NjkCgYEAs5RwqlIW1B8MoWZwnasH -Q+C3ciW4Pn4FkbI1ojAlLIbH7viw1HLQKz9ZHADlruFLaGj4XK+vBudBhvyk0fin -SH6xHf5snmL1eTbP2jqfjQLRk0OsobJsoSD1ZOUGhyyBL8uS1u860GyEwvtDZYf0 -zaBszApU+HqH3RrNpVb+jrkCgYEAv5COTi0egHAyWSrBlmJ3q3qXQzG0ZCPj8XKr -GEPH1eeIr4ZgsicwqMPSeM2CovR1zgv3VbEEZ8Oj+WWamy9vHijfjEgIhOe8137a -i9j825BpWt/GcZKBSjmkjDgtt5VtJrm8Qm+Q1ADpFlnGbT4w416WOaVSU7CcQh95 -ScW/7YkCgYEAgA3NJVTGwP7KDqN4VTiJV+8w5q7YiucrZV/eyY0D3jynsPyp5kl2 -gZn1yuGFOjR36JuzzuIdJVNFRn/0z4GDO91Ogba111VLld4LynzR36bDSO/odJqM -ef61ZT4IUHQ+uB3CqFQHAWHT9RmQIylyjKcibIDWcmq2P0Bsq03A4kM= ------END RSA PRIVATE KEY----- diff -r c018c510a562 -r 73e04040d577 docker/backend_e2e/sat.conf --- a/docker/backend_e2e/sat.conf Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -[DEFAULT] -xmpp_domain = server1.test -email_server = sat.test -email_port = 8025 -email_admins_list = admin@server1.test - -[component file_sharing] -tls_certificate = /usr/share/sat/certificates/server1.test.pem -tls_private_key = /usr/share/sat/certificates/server1.test-key.pem -http_upload_public_facing_url = https://sat.test:8888 diff -r c018c510a562 -r 73e04040d577 docker/docker-compose-e2e.yml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/docker-compose-e2e.yml Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,74 @@ +version: "3.6" +services: + + prosody: + image: libervia/prosody:e2e + build: prosody-e2e + depends_on: + # we need to depend on backend to get IP address of the container for conf + - backend + tmpfs: /var/lib/prosody + tmpfs: /var/log/prosody + networks: + default: + aliases: + - server1.test + - server2.test + - server3.test + + db: + image: postgres + environment: + POSTGRES_PASSWORD: test_e2e + POSTGRES_DB: pubsub + tmpfs: /var/lib/postgresql/data + + pubsub: + build: pubsub + image: libervia/pubsub + depends_on: + - db + - prosody + environment: + PGHOST: db + PGUSER: postgres + PGPASSWORD: test_e2e + LIBERVIA_PUBSUB_RHOST: server1.test + LIBERVIA_PUBSUB_JID: pubsub.server1.test + LIBERVIA_PUBSUB_XMPP_PWD: test_e2e + + backend: + image: libervia/backend:dev-e2e + build: backend-dev-e2e + environment: + LIBERVIA_TEST_ENV_E2E: "1" + LIBERVIA_TEST_ENV_E2E_WEB: "1" + volumes: + - libervia_data:/home/libervia/.local/share/libervia + ports: + # VNC server for Libervia e2e tests visual mode + - 5900 + networks: + default: + aliases: + - libervia-backend.test + + web: + image: libervia/web:dev-e2e + build: libervia-web-dev-e2e + depends_on: + - backend + environment: + LIBERVIA_PASSPHRASE: test_e2e + volumes: + - libervia_data:/home/libervia/.local/share/libervia + ports: + - "8080" + - "8443" + networks: + default: + aliases: + - libervia-web.test + +volumes: + libervia_data: diff -r c018c510a562 -r 73e04040d577 docker/docker-compose.yml --- a/docker/docker-compose.yml Wed Apr 14 15:54:26 2021 +0200 +++ b/docker/docker-compose.yml Fri Apr 16 18:32:16 2021 +0200 @@ -1,12 +1,12 @@ version: "3.6" services: - sat: - image: salutatoi/sat - build: backend + backend: + image: libervia/backend:dev + build: backend-dev - libervia: - image: salutatoi/libervia - build: libervia + web: + image: libervia/web:dev + build: libervia-web-dev depends_on: - - sat + - backend diff -r c018c510a562 -r 73e04040d577 docker/docker-compose_e2e.yml --- a/docker/docker-compose_e2e.yml Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,74 +0,0 @@ -version: "3.6" -services: - - prosody: - build: prosody_e2e - image: salutatoi/prosody_e2e - depends_on: - # we need to depend on sat to get IP address of the container for conf - - sat - tmpfs: /var/lib/prosody - tmpfs: /var/log/prosody - networks: - default: - aliases: - - server1.test - - server2.test - - server3.test - - db: - image: postgres - environment: - POSTGRES_PASSWORD: test_e2e - POSTGRES_DB: pubsub - tmpfs: /var/lib/postgresql/data - - pubsub: - build: pubsub - image: salutatoi/sat_pubsub - depends_on: - - db - - prosody - environment: - PGHOST: db - PGUSER: postgres - PGPASSWORD: test_e2e - SAT_PUBSUB_RHOST: server1.test - SAT_PUBSUB_JID: pubsub.server1.test - SAT_PUBSUB_XMPP_PWD: test_e2e - - sat: - build: backend_e2e - image: salutatoi/sat_e2e - environment: - SAT_TEST_ENV_E2E: "1" - SAT_TEST_ENV_E2E_LIBERVIA: "1" - volumes: - - sat_data:/home/sat/.local/share/sat - ports: - # VNC server for Libervia e2e tests visual mode - - 5900 - networks: - default: - aliases: - - sat.test - - libervia: - image: salutatoi/libervia_e2e - build: libervia_e2e - depends_on: - - sat - environment: - LIBERVIA_PASSPHRASE: test_e2e - volumes: - - sat_data:/home/sat/.local/share/sat - ports: - - "8080" - - "8443" - networks: - default: - aliases: - - libervia.test - -volumes: - sat_data: diff -r c018c510a562 -r 73e04040d577 docker/libervia-web-dev-e2e/Dockerfile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/libervia-web-dev-e2e/Dockerfile Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,19 @@ +FROM libervia/web:dev + +LABEL maintainer="Goffi " + +ARG DEBIAN_FRONTEND=noninteractive + +USER root + +# we install pre-generated certificates so we can do tests with valid TLS +# those certificates are the same as in libervia/backend-dev-e2e +COPY --chown=root:root certificates/minica.pem /usr/local/share/ca-certificates/minica.crt +COPY --chown=root:tls-cert certificates/server1.test/cert.pem /usr/share/libervia/certificates/server1.test.pem +COPY --chown=root:tls-cert certificates/server1.test/key.pem /usr/share/libervia/certificates/server1.test-key.pem +RUN update-ca-certificates + +COPY --chown=root:root libervia.conf /etc/libervia.conf + +WORKDIR /home/libervia +USER libervia diff -r c018c510a562 -r 73e04040d577 docker/libervia-web-dev-e2e/certificates/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/libervia-web-dev-e2e/certificates/README Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,2 @@ +this certificates are used to enable TLS during tests. Those must be the same as in +backend_e2e (they are generated there) diff -r c018c510a562 -r 73e04040d577 docker/libervia-web-dev-e2e/certificates/minica-key.pem --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/libervia-web-dev-e2e/certificates/minica-key.pem Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAvO1Mq06trCFWhsFzX9nBV+2/jJLJ0ishn5VkbeWkayXf609t +5Lg6cQealXMvAjPYK9Kuy4patmJ0iMT53/x6rmfbhbcp40Licuc7RGrpcNgbllAA +uIcosisIsfNzvOLkTA2+nxj7F7jkOKmvtoNU8zc5PKEObsrVd04CuhH4/WPwG4yT +Lfkpuq5Db3B5JRzghCWDgi1U9aTvCcHOjDbraBwJZSsYBN9RY+KFVHEDQSQaWAkj +UoimwRSmV+G65/+vjIkkEIKNmzQ+FaK5kYNFUjVz1gWiq8SAwL1p4B5pFJ35ze6c +WDko5OxccMs0k8NQJ8GxIvf5PmApr9lvIuUuCQIDAQABAoIBABLTCiqfgkp+X+K5 +b8eDKPKb69QT5CwexBDkj8crdICAm5kUpvx9JsWQXmS5v1tW0xk6utPpCzTVBouC +JOueepLaIlNmdrQAPBP62jrs9CmcPtNxUUERpopqI0mn2kZdzSWO0QmFMa+haowC +zFFBMLuzKu7RlWCQsUhb64WiuM52dOeQLzSCCzQK0+6a7Ox3uSwSCab+Q+LLbJDi +XKKnYlQR0oX1jl82GOxn36wpXKmOqSfqrrPMP4tvD1l97M+POJ8jbWBCn5aiWdqN +pWGgNpzzvsSEdnzDoKf+H/L7B9joNic+csch5KKF7WR6t1/MOj9hR9zf9bJKHRmC +eSnihIkCgYEA3yShCC1X8ljhIRf7t26oVTdmt/WFT676afq6gQJUVsOANq/QVsHB +gbDDltQSxQnNVOIt+wAIvz349KbSvPQ22+CpADQjuAdXumXctJOI38OydVW+0vPn +nkdearUEOayuxC9Ztsia9gF/udFWNZmYVi2PP5cNYPsxDS77g9EgNUsCgYEA2L7l +AUrBD6BKbhr4a81TKB9g37z1X8uD49dSq9KldnpDRybinzQLOTdc3tGOvrCVT/vI +PLB5B8AByfnta/pek+mAdoOxFuuF7v2m0OE37+ZkbR+haTETeplouLcZcnJcO4V3 +unQSGA6Gv4oMK85akWW2RqbRKxwQ8s4xeZ1d2XsCgYAw848kBRZ7AsZ4hRNiXTMu +ZpXxGzpgjak/oJJThNhNpFu3I4CX16+ErOtrZiCr+weBbJDbtFk24vh/ay1l6Ek0 +mSdZ9RY0499586ikMI1hUUQP+3x+OKWCEnQDAqznnhtEzIJo178u4otLj0HTRlul +5B69u3xi3xgWpUzl0PW42wKBgQCnOE/x+TyN07rYy9IRSa34bI0O0Pf2Wkt9Aujz +S2cAyz8Qq/13mm12TTJHbiHVGON5e+V2fShDRG2c6Ee2YMmLEEFeLif4aOlCA0wq +JzhCy9t7HUYopAZFNgpHSGxHkdd6zHQc0+QJz1tCdz0ApwnU10YTqCwEOHkS+uXM +0A5R9QKBgQCT2AgHJBHb6gksum1ipSc9v13x+P59hrbJ8sGxRZvQGfB7igXDxkBV +t0/nKltzyZFFNdTSUOHRLrygjTxpu93XWtpA36N7R8SbfGqMsRJeTfdV4vAZtR2x +EG0OyJaB/EfwlhXdAfF11jPoI6NQmBAeAoyWEbcitmuR6fxrqYWOZQ== +-----END RSA PRIVATE KEY----- diff -r c018c510a562 -r 73e04040d577 docker/libervia-web-dev-e2e/certificates/minica.pem --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/libervia-web-dev-e2e/certificates/minica.pem Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSzCCAjOgAwIBAgIIYcWiSXEWKycwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE +AxMVbWluaWNhIHJvb3QgY2EgNjFjNWEyMCAXDTIwMTExOTE3MTAwMFoYDzIxMjAx +MTE5MTcxMDAwWjAgMR4wHAYDVQQDExVtaW5pY2Egcm9vdCBjYSA2MWM1YTIwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC87UyrTq2sIVaGwXNf2cFX7b+M +ksnSKyGflWRt5aRrJd/rT23kuDpxB5qVcy8CM9gr0q7Lilq2YnSIxPnf/HquZ9uF +tynjQuJy5ztEaulw2BuWUAC4hyiyKwix83O84uRMDb6fGPsXuOQ4qa+2g1TzNzk8 +oQ5uytV3TgK6Efj9Y/AbjJMt+Sm6rkNvcHklHOCEJYOCLVT1pO8Jwc6MNutoHAll +KxgE31Fj4oVUcQNBJBpYCSNSiKbBFKZX4brn/6+MiSQQgo2bND4VormRg0VSNXPW +BaKrxIDAvWngHmkUnfnN7pxYOSjk7FxwyzSTw1AnwbEi9/k+YCmv2W8i5S4JAgMB +AAGjgYYwgYMwDgYDVR0PAQH/BAQDAgKEMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggr +BgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRQfEdSX8zI0mvb +VoU7AsYtFA5W8zAfBgNVHSMEGDAWgBRQfEdSX8zI0mvbVoU7AsYtFA5W8zANBgkq +hkiG9w0BAQsFAAOCAQEAA6LLnPz043imkMXaeXgAtsKk2JYdpGAZeCeHolzOFpMQ +AQgq+3PkVbcpopbXtXxuiTTAjgVIoMnn6tKQbcSeDP6ydOJhjrDfUN8qx03peYw0 +HOqCvGwqssR7ew6MhyVPSyJOdz74NrSoZdxn7bz369A+R6BG7QyKyl6OlW4x+tuI +htLQ9vWOxVRBORuEFQ/F3hxwDJY1aT5oCEYzOy7pvOrAh+gnoAb++isi/uwxSufX +GQs1jejANCi+Rkxe918woDH4mosr9ypRapWPJU0flyxlQUQyAInu4oyDYP3Peits +D1Y5DkLN/dxIxg1drlNgIGDOCxbV85iDKVPnQ5fmeA== +-----END CERTIFICATE----- diff -r c018c510a562 -r 73e04040d577 docker/libervia-web-dev-e2e/certificates/server1.test/cert.pem --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/libervia-web-dev-e2e/certificates/server1.test/cert.pem Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDijCCAnKgAwIBAgIITwyWOI+1bQ8wDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE +AxMVbWluaWNhIHJvb3QgY2EgNjFjNWEyMB4XDTIxMDQxNDE2MjA0NFoXDTIzMDUx +NDE2MjA0NFowFzEVMBMGA1UEAxMMc2VydmVyMS50ZXN0MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAtXAh2Mn5eIFLI5v1Zz8+BRsPKfjn1RBBs+ZVVysJ +ez4DOOXcouWjOqcMPhWK/lN3NNm3SOWJQRJEZjHaU197YioX1cr1KP1pfAWlm03t +MZpf/XoeoKpV+6svM2m6emNh6Y812ATin2DIigm2b4UrHiP8Seppd84dReGdpaD9 +7zCZBKv5fHCwcY+irjsV+1vRapLDvDMIL/6Vk8Fw3m9UlIhdZNudTKgxo8lYbhuo +QsyhG0ydALgp+eeNKnZZdBCpdFOtZztbrS0DifQvkKxbv7+V3IAQ+4lLAfLoFNuV +H5cukfuJbR9UjyqvBH16yCE2VNvL+dDZXYmh/q3yTF0MgQIDAQABo4HQMIHNMA4G +A1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYD +VR0TAQH/BAIwADAfBgNVHSMEGDAWgBRQfEdSX8zI0mvbVoU7AsYtFA5W8zBtBgNV +HREEZjBkggxzZXJ2ZXIxLnRlc3SCDiouc2VydmVyMS50ZXN0ggxzZXJ2ZXIyLnRl +c3SCDHNlcnZlcjMudGVzdIIVbGliZXJ2aWEtYmFja2VuZC50ZXN0ghFsaWJlcnZp +YS13ZWIudGVzdDANBgkqhkiG9w0BAQsFAAOCAQEAetIuuZd7O0G8ssueqddVfedM +syL4NZp/I6AWy9qiUcKf9lhGtLE3AblL5fhHanty94B4EyW5+8fjSrSSSRbUYkFH +dbS41ptzuPGtU9S7OFp7C1TAZHeAgCdvJ4ZnD2YFNQXJ89bp+ZEi4Znu1avqckJP +gMAd695gZaobZzehwAG00Xd9ELVku3Cnu4gsxMbgvcRFqq4Bplk/YYtDtd9FG2Qr +mSBuUGwGikr9C4xEUw69uIq1SK98qaOBEwUgKYb/Rvh03OP5F2u36zdH8J3W/Mjv +OGYo4RCLZFG0CntYLFTWOAoYRs7C7dlgwXRNgaNaRiseiPDka1DAaf6BQ8riMw== +-----END CERTIFICATE----- diff -r c018c510a562 -r 73e04040d577 docker/libervia-web-dev-e2e/certificates/server1.test/key.pem --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/libervia-web-dev-e2e/certificates/server1.test/key.pem Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAtXAh2Mn5eIFLI5v1Zz8+BRsPKfjn1RBBs+ZVVysJez4DOOXc +ouWjOqcMPhWK/lN3NNm3SOWJQRJEZjHaU197YioX1cr1KP1pfAWlm03tMZpf/Xoe +oKpV+6svM2m6emNh6Y812ATin2DIigm2b4UrHiP8Seppd84dReGdpaD97zCZBKv5 +fHCwcY+irjsV+1vRapLDvDMIL/6Vk8Fw3m9UlIhdZNudTKgxo8lYbhuoQsyhG0yd +ALgp+eeNKnZZdBCpdFOtZztbrS0DifQvkKxbv7+V3IAQ+4lLAfLoFNuVH5cukfuJ +bR9UjyqvBH16yCE2VNvL+dDZXYmh/q3yTF0MgQIDAQABAoIBAFCxZSxAb6Yrgpp8 +s0DO/KtSpITbQWgeCcqTxyK0bkwUgWRdvqnoDZd5UdWOyTlhL6QerAhMpaV+FVOK +Gnp3/azj4aPg1vX69l4FOOkAWFx2NvjJxjNYblM2iBCKljf2WUaBvcWsLooJhkb2 +GOAyTsHh6UOKcIuq7JP2yqEuH6GvsD9z5B82d/uWtCMlf4PA26R6GGrEaJ4ARY0y +ePthWmYOJdZi2CLf5RTfd3Y89EKkYbyj+/bmGTFrPThJwBcqjiTV+/Mu3rE7RG/i +hkZWZi7Q319w/i83In0vHReSb/DOiwjYp+ChPjvKdv0DjL4RyfX5vSkZDDC+LKI8 +5fwEgy0CgYEA51LSAd2DGtYieeQc9jGiUtXzbxvTObGP01NcCX7iS04EF1czj/Ur +Zrqwsc7yKkdJWaAn12JOolPOZtjEeU4Q3/Oyen9LdxsfPNzpHKqlcOJ/xVWZ/ikY +WLn5nwpD8HLkx+WZj7TzbBqcs9UiKRkW7bUC3A7KDeBH/nMBDjWwJjcCgYEAyMr/ +AlpRf7OgYnOgEFYcHbNNzp2b7p5lK+8eDrEiRW+U3aT00f8+ZeqF6wSe0hn3gs94 +6IzRtrr0SBObi7My5t6duz56a6K3NE4JhI+3/P2YyQy/2lhYUkA7CG1YMJzvkVaM +bSuY9bMptzVpjL6Sn3kyHoW/R9d9i3n0ipBDhwcCgYEA2bLy2ziJwv7VkVsh+nx5 +pHWf1Ogd4IT/s0UXMASOmYpBhWnWp9t2zgZSdfQpqapPGJ8F/8iP8mrmq5nDRdo3 +PVyOkoQsFFqdCl1osUbTzioLTz6hXzVzqUTU7Fzv1WF7d7jXzQvhrtJYuVGTBZSM +JIeeulTcyTRS7N90ldfm//8CgYEAl1ia+jUFtRG51Dt+7JFbQ+/At/oIbMWrUIA9 +0akmQdwnAyGw/xA7AirRoiGrbIXyEAE+C1sJP4iPVDyjQ5tgxLALh/VB5RuSp7Qi +bG6/qcuke/ZGLdflSqnrVSDGFm5UDOKFmkwAUUIoMVXrJxEGB3ockvERCp+cm6Li +9gZjP8UCgYATWrDUb3+LOVHIVuYcrd9CDfO7OHT1yxmnef2hBYYs8MQ2ewVBTWkq +jzTPuUCub6T72uVpefOciBByqbgUUUnXgfX8nTT2BEBGjoubf3/77RvsEnrEGEI/ +XncILicM1dwQXqR5fWDcpWRhehIzlzF70iZ3Ws1QC63gv4Z6VGifMQ== +-----END RSA PRIVATE KEY----- diff -r c018c510a562 -r 73e04040d577 docker/libervia-web-dev-e2e/libervia.conf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/libervia-web-dev-e2e/libervia.conf Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,3 @@ +[web] +tls_certificate = /usr/share/libervia/certificates/server1.test.pem +tls_private_key = /usr/share/libervia/certificates/server1.test-key.pem diff -r c018c510a562 -r 73e04040d577 docker/libervia-web-dev/Dockerfile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/libervia-web-dev/Dockerfile Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,25 @@ +FROM libervia/backend:dev + +LABEL maintainer="Goffi " + +ARG DEBIAN_FRONTEND=noninteractive + +USER root + +RUN apt-get install -y --no-install-recommends yarnpkg +WORKDIR /home/libervia +USER libervia +RUN cd /src && hg clone https://repos.goffi.org/libervia && \ + ~/libervia_env/bin/pip install -e libervia && \ + mv libervia/libervia.egg-info ~/libervia_env/lib/python3.*/site-packages + +RUN ./entrypoint.sh \ + # we build here to avoid re-downloading node modules or other browser + # dependencies on each run + libervia-web fg -- --build-only && \ + libervia-backend stop + +EXPOSE 8080 8443 + +ENTRYPOINT ["libervia-web"] +CMD ["fg"] diff -r c018c510a562 -r 73e04040d577 docker/libervia/Dockerfile --- a/docker/libervia/Dockerfile Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -FROM salutatoi/sat - -LABEL maintainer="Goffi " - -ARG DEBIAN_FRONTEND=noninteractive - -USER root - -RUN apt-get install -y --no-install-recommends yarnpkg -WORKDIR /home/sat -USER sat -RUN cd /src && hg clone https://repos.goffi.org/libervia && \ - ~/sat_env/bin/pip install -e libervia && \ - mv libervia/libervia.egg-info ~/sat_env/lib/python3.*/site-packages - -RUN ./entrypoint.sh \ - # we build here to avoid re-downloading node modules or other browser - # dependencies on each run - libervia fg -- --build-only && \ - sat stop - -EXPOSE 8080 8443 - -ENTRYPOINT ["libervia"] -CMD ["fg"] diff -r c018c510a562 -r 73e04040d577 docker/libervia_e2e/Dockerfile --- a/docker/libervia_e2e/Dockerfile Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -FROM salutatoi/libervia - -LABEL maintainer="Goffi " - -ARG DEBIAN_FRONTEND=noninteractive - -USER root - -# we install pre-generated certificates so we can do tests with valid TLS -# those certificates are the same as in salutatoi/backend_e2e -COPY --chown=root:root certificates/minica.pem /usr/local/share/ca-certificates/minica.crt -COPY --chown=root:tls-cert certificates/server1.test/cert.pem /usr/share/sat/certificates/server1.test.pem -COPY --chown=root:tls-cert certificates/server1.test/key.pem /usr/share/sat/certificates/server1.test-key.pem -RUN update-ca-certificates - -COPY --chown=root:root sat.conf /etc/sat.conf - -WORKDIR /home/sat -USER sat diff -r c018c510a562 -r 73e04040d577 docker/libervia_e2e/certificates/README --- a/docker/libervia_e2e/certificates/README Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -this certificates are used to enable TLS during tests. Those must be the same as in -backend_e2e (they are generated there) diff -r c018c510a562 -r 73e04040d577 docker/libervia_e2e/certificates/minica-key.pem --- a/docker/libervia_e2e/certificates/minica-key.pem Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEpAIBAAKCAQEAvO1Mq06trCFWhsFzX9nBV+2/jJLJ0ishn5VkbeWkayXf609t -5Lg6cQealXMvAjPYK9Kuy4patmJ0iMT53/x6rmfbhbcp40Licuc7RGrpcNgbllAA -uIcosisIsfNzvOLkTA2+nxj7F7jkOKmvtoNU8zc5PKEObsrVd04CuhH4/WPwG4yT -Lfkpuq5Db3B5JRzghCWDgi1U9aTvCcHOjDbraBwJZSsYBN9RY+KFVHEDQSQaWAkj -UoimwRSmV+G65/+vjIkkEIKNmzQ+FaK5kYNFUjVz1gWiq8SAwL1p4B5pFJ35ze6c -WDko5OxccMs0k8NQJ8GxIvf5PmApr9lvIuUuCQIDAQABAoIBABLTCiqfgkp+X+K5 -b8eDKPKb69QT5CwexBDkj8crdICAm5kUpvx9JsWQXmS5v1tW0xk6utPpCzTVBouC -JOueepLaIlNmdrQAPBP62jrs9CmcPtNxUUERpopqI0mn2kZdzSWO0QmFMa+haowC -zFFBMLuzKu7RlWCQsUhb64WiuM52dOeQLzSCCzQK0+6a7Ox3uSwSCab+Q+LLbJDi -XKKnYlQR0oX1jl82GOxn36wpXKmOqSfqrrPMP4tvD1l97M+POJ8jbWBCn5aiWdqN -pWGgNpzzvsSEdnzDoKf+H/L7B9joNic+csch5KKF7WR6t1/MOj9hR9zf9bJKHRmC -eSnihIkCgYEA3yShCC1X8ljhIRf7t26oVTdmt/WFT676afq6gQJUVsOANq/QVsHB -gbDDltQSxQnNVOIt+wAIvz349KbSvPQ22+CpADQjuAdXumXctJOI38OydVW+0vPn -nkdearUEOayuxC9Ztsia9gF/udFWNZmYVi2PP5cNYPsxDS77g9EgNUsCgYEA2L7l -AUrBD6BKbhr4a81TKB9g37z1X8uD49dSq9KldnpDRybinzQLOTdc3tGOvrCVT/vI -PLB5B8AByfnta/pek+mAdoOxFuuF7v2m0OE37+ZkbR+haTETeplouLcZcnJcO4V3 -unQSGA6Gv4oMK85akWW2RqbRKxwQ8s4xeZ1d2XsCgYAw848kBRZ7AsZ4hRNiXTMu -ZpXxGzpgjak/oJJThNhNpFu3I4CX16+ErOtrZiCr+weBbJDbtFk24vh/ay1l6Ek0 -mSdZ9RY0499586ikMI1hUUQP+3x+OKWCEnQDAqznnhtEzIJo178u4otLj0HTRlul -5B69u3xi3xgWpUzl0PW42wKBgQCnOE/x+TyN07rYy9IRSa34bI0O0Pf2Wkt9Aujz -S2cAyz8Qq/13mm12TTJHbiHVGON5e+V2fShDRG2c6Ee2YMmLEEFeLif4aOlCA0wq -JzhCy9t7HUYopAZFNgpHSGxHkdd6zHQc0+QJz1tCdz0ApwnU10YTqCwEOHkS+uXM -0A5R9QKBgQCT2AgHJBHb6gksum1ipSc9v13x+P59hrbJ8sGxRZvQGfB7igXDxkBV -t0/nKltzyZFFNdTSUOHRLrygjTxpu93XWtpA36N7R8SbfGqMsRJeTfdV4vAZtR2x -EG0OyJaB/EfwlhXdAfF11jPoI6NQmBAeAoyWEbcitmuR6fxrqYWOZQ== ------END RSA PRIVATE KEY----- diff -r c018c510a562 -r 73e04040d577 docker/libervia_e2e/certificates/minica.pem --- a/docker/libervia_e2e/certificates/minica.pem Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDSzCCAjOgAwIBAgIIYcWiSXEWKycwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE -AxMVbWluaWNhIHJvb3QgY2EgNjFjNWEyMCAXDTIwMTExOTE3MTAwMFoYDzIxMjAx -MTE5MTcxMDAwWjAgMR4wHAYDVQQDExVtaW5pY2Egcm9vdCBjYSA2MWM1YTIwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC87UyrTq2sIVaGwXNf2cFX7b+M -ksnSKyGflWRt5aRrJd/rT23kuDpxB5qVcy8CM9gr0q7Lilq2YnSIxPnf/HquZ9uF -tynjQuJy5ztEaulw2BuWUAC4hyiyKwix83O84uRMDb6fGPsXuOQ4qa+2g1TzNzk8 -oQ5uytV3TgK6Efj9Y/AbjJMt+Sm6rkNvcHklHOCEJYOCLVT1pO8Jwc6MNutoHAll -KxgE31Fj4oVUcQNBJBpYCSNSiKbBFKZX4brn/6+MiSQQgo2bND4VormRg0VSNXPW -BaKrxIDAvWngHmkUnfnN7pxYOSjk7FxwyzSTw1AnwbEi9/k+YCmv2W8i5S4JAgMB -AAGjgYYwgYMwDgYDVR0PAQH/BAQDAgKEMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggr -BgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRQfEdSX8zI0mvb -VoU7AsYtFA5W8zAfBgNVHSMEGDAWgBRQfEdSX8zI0mvbVoU7AsYtFA5W8zANBgkq -hkiG9w0BAQsFAAOCAQEAA6LLnPz043imkMXaeXgAtsKk2JYdpGAZeCeHolzOFpMQ -AQgq+3PkVbcpopbXtXxuiTTAjgVIoMnn6tKQbcSeDP6ydOJhjrDfUN8qx03peYw0 -HOqCvGwqssR7ew6MhyVPSyJOdz74NrSoZdxn7bz369A+R6BG7QyKyl6OlW4x+tuI -htLQ9vWOxVRBORuEFQ/F3hxwDJY1aT5oCEYzOy7pvOrAh+gnoAb++isi/uwxSufX -GQs1jejANCi+Rkxe918woDH4mosr9ypRapWPJU0flyxlQUQyAInu4oyDYP3Peits -D1Y5DkLN/dxIxg1drlNgIGDOCxbV85iDKVPnQ5fmeA== ------END CERTIFICATE----- diff -r c018c510a562 -r 73e04040d577 docker/libervia_e2e/certificates/server1.test/cert.pem --- a/docker/libervia_e2e/certificates/server1.test/cert.pem Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDgzCCAmugAwIBAgIIZiX7tomjsm8wDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE -AxMVbWluaWNhIHJvb3QgY2EgNjFjNWEyMB4XDTIwMTExOTE3MTAwMFoXDTIyMTIx -OTE3MTAwMFowFzEVMBMGA1UEAxMMc2VydmVyMS50ZXN0MIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEAqO9edKoh9DZfVeb8n0iCJ375QqVVHuS3AI22VTRL -sa6lYYjjlcag4GeJScZNnQzdBHLRfsZBVKIYbPPuB4+p7w5V56n61kPd7oWTEfe8 -UYvgQOcEo7u7EDMIgFkgtMLJBMUBLPdBwNjeQdFk+yg+pUls7LXXzZXZsrupLfvP -YP81xZiD9BHk6/D0ia4oaQ873VAZwuFviqO+7asn46AyR94n3MlABG7iyKoSs/rO -Yh13cFEEvbIE/nHTr+rbeswHUtZwKhqQ83iuAphTUlNliAiGHKPxLjojYjGGq7ES -6BUs4REeyavaYFzyh3JUyicBYqLvMPy449PVkCTF//XRAQIDAQABo4HJMIHGMA4G -A1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYD -VR0TAQH/BAIwADAfBgNVHSMEGDAWgBRQfEdSX8zI0mvbVoU7AsYtFA5W8zBmBgNV -HREEXzBdggxzZXJ2ZXIxLnRlc3SCDiouc2VydmVyMS50ZXN0ggxzZXJ2ZXIyLnRl -c3SCDHNlcnZlcjMudGVzdIIIc2F0LnRlc3SCCGxpYmVydmlhgg1saWJlcnZpYS50 -ZXN0MA0GCSqGSIb3DQEBCwUAA4IBAQCGar+WGZZVouJHCTcI5NEIqE7+j8ooLAQA -r57rYnjOQEVp0hCM4gGUoolp0iq7GC6Ep8hptRwSlvm4P6nR4MrXoqE+La/qrygO -1aue4td+4HUFLyPkjMRwOA5Mzg0reGcOI+Ptc47zyIgij+HmUROu/D/Xdoat0LGN -rzqmaTYhZ7Ifh2XtcZPfkFmYh/JEF7qgspNatOmka2XSLwzzRDTERN8Z04rB2NfA -n2xoadafPDu9ZnIrWNi+MVvvNwtppWZ1TXHaYEWW2dx2nXdCbsIJaUwaKDAfyppk -+SHxauKPbpvx8m38nKw7cC54miMR1PHyIspK8Fpc84tMCDU/vCfL ------END CERTIFICATE----- diff -r c018c510a562 -r 73e04040d577 docker/libervia_e2e/certificates/server1.test/key.pem --- a/docker/libervia_e2e/certificates/server1.test/key.pem Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEpQIBAAKCAQEAqO9edKoh9DZfVeb8n0iCJ375QqVVHuS3AI22VTRLsa6lYYjj -lcag4GeJScZNnQzdBHLRfsZBVKIYbPPuB4+p7w5V56n61kPd7oWTEfe8UYvgQOcE -o7u7EDMIgFkgtMLJBMUBLPdBwNjeQdFk+yg+pUls7LXXzZXZsrupLfvPYP81xZiD -9BHk6/D0ia4oaQ873VAZwuFviqO+7asn46AyR94n3MlABG7iyKoSs/rOYh13cFEE -vbIE/nHTr+rbeswHUtZwKhqQ83iuAphTUlNliAiGHKPxLjojYjGGq7ES6BUs4REe -yavaYFzyh3JUyicBYqLvMPy449PVkCTF//XRAQIDAQABAoIBAFt8PdfKJtcc9uYL -UDVmS+3dqlj4Ni+jxqMLG3nq9y8DGFbIjg8XYRoFl+iW9oMdaze0glU4Qjr2CWo/ -c2Eu4OUwCz+I4ulUGYTJW4r4cUhsCoa7VNzilnxAVtNC8R5S+g+WLHvQbxBjoYFd -R2VoNvzF1bIfC/4ur5VGYWkgm/63dTdDd2dJoQp30cypL5lL6v+T3FxkcTEYYuu2 -Q05mwXZ/zekzwQqPKX0/M/UxlqeItlM7rsIp7+baAdoXEzxzadGkFdUgE+jh5fwG -gdWiTJLSToZrlfpTthkZ3IegDhHHBlRHR8BQq0MypR/j6eM/iONQnvuODx6eaTqQ -Lf/h1UECgYEAxVbiqgDNp3z/D9bwJfYWneLrdJ6Bm8NJiJLEG8nlCZW+34wRRyNR -Jlwk6aPzT3ibf6OPaAvCnH0ENBGUyxe/Ri2IeWPF5nmbESq6TqheKJdmFIPQPTCS -KoLWYjbLpTN22Pi8S/OgwbVxyZ09bLjGrjhsHw6GnbZvzPt3T3pvMQkCgYEA2yb4 -oBpeV4A085qt79mq4SK6093f/D9d7yWNmtBlJM5cCurZukvYzNSsGjjwIjVjBlla -mhec+fsXmFUjYefRDLs6vNZuVkrSwC5E9uwDuG89W15BfaIyQjHpAyLFWM2eTivD -Hmr4F8gJ3Rgac1KfdcnxyBOJgwFDsOuSIOT8NjkCgYEAs5RwqlIW1B8MoWZwnasH -Q+C3ciW4Pn4FkbI1ojAlLIbH7viw1HLQKz9ZHADlruFLaGj4XK+vBudBhvyk0fin -SH6xHf5snmL1eTbP2jqfjQLRk0OsobJsoSD1ZOUGhyyBL8uS1u860GyEwvtDZYf0 -zaBszApU+HqH3RrNpVb+jrkCgYEAv5COTi0egHAyWSrBlmJ3q3qXQzG0ZCPj8XKr -GEPH1eeIr4ZgsicwqMPSeM2CovR1zgv3VbEEZ8Oj+WWamy9vHijfjEgIhOe8137a -i9j825BpWt/GcZKBSjmkjDgtt5VtJrm8Qm+Q1ADpFlnGbT4w416WOaVSU7CcQh95 -ScW/7YkCgYEAgA3NJVTGwP7KDqN4VTiJV+8w5q7YiucrZV/eyY0D3jynsPyp5kl2 -gZn1yuGFOjR36JuzzuIdJVNFRn/0z4GDO91Ogba111VLld4LynzR36bDSO/odJqM -ef61ZT4IUHQ+uB3CqFQHAWHT9RmQIylyjKcibIDWcmq2P0Bsq03A4kM= ------END RSA PRIVATE KEY----- diff -r c018c510a562 -r 73e04040d577 docker/libervia_e2e/sat.conf --- a/docker/libervia_e2e/sat.conf Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -[libervia] -tls_certificate = /usr/share/sat/certificates/server1.test.pem -tls_private_key = /usr/share/sat/certificates/server1.test-key.pem diff -r c018c510a562 -r 73e04040d577 docker/prosody-e2e/Dockerfile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/prosody-e2e/Dockerfile Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,22 @@ +FROM prosody/prosody + +LABEL maintainer="Goffi " + +ARG DEBIAN_FRONTEND=noninteractive + +# we synchronize tls-cert group with the one in libervia-web/libervia-backend +RUN addgroup tls-cert --gid 9999 && adduser prosody tls-cert && \ + # we want third party modules + apt-get update && apt-get install -y --no-install-recommends mercurial && \ + mkdir -p /usr/local/share/prosody && \ + hg clone https://hg.prosody.im/prosody-modules /usr/local/share/prosody/modules && \ + chown -R prosody:prosody /usr/local/share/prosody + +COPY --chown=root:prosody prosody.cfg.lua /etc/prosody/prosody.cfg.lua +COPY --chown=root:tls-cert certificates/server1.test/cert.pem /usr/share/libervia/certificates/server1.test.pem +COPY --chown=root:tls-cert certificates/server1.test/key.pem /usr/share/libervia/certificates/server1.test-key.pem + +# we add exec to handle properly signals, this is missing upstream +# FIXME: to be removed when new images are generated with +# https://github.com/prosody/prosody-docker/pull/65 +RUN sed -i "s/^runuser -u prosody/exec \0/" /entrypoint.sh diff -r c018c510a562 -r 73e04040d577 docker/prosody-e2e/certificates/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/prosody-e2e/certificates/README Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,2 @@ +this certificates are used to enable TLS during tests. Those must be the same as in +backend_e2e (they are generated there) diff -r c018c510a562 -r 73e04040d577 docker/prosody-e2e/certificates/server1.test/cert.pem --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/prosody-e2e/certificates/server1.test/cert.pem Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDijCCAnKgAwIBAgIITwyWOI+1bQ8wDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE +AxMVbWluaWNhIHJvb3QgY2EgNjFjNWEyMB4XDTIxMDQxNDE2MjA0NFoXDTIzMDUx +NDE2MjA0NFowFzEVMBMGA1UEAxMMc2VydmVyMS50ZXN0MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAtXAh2Mn5eIFLI5v1Zz8+BRsPKfjn1RBBs+ZVVysJ +ez4DOOXcouWjOqcMPhWK/lN3NNm3SOWJQRJEZjHaU197YioX1cr1KP1pfAWlm03t +MZpf/XoeoKpV+6svM2m6emNh6Y812ATin2DIigm2b4UrHiP8Seppd84dReGdpaD9 +7zCZBKv5fHCwcY+irjsV+1vRapLDvDMIL/6Vk8Fw3m9UlIhdZNudTKgxo8lYbhuo +QsyhG0ydALgp+eeNKnZZdBCpdFOtZztbrS0DifQvkKxbv7+V3IAQ+4lLAfLoFNuV +H5cukfuJbR9UjyqvBH16yCE2VNvL+dDZXYmh/q3yTF0MgQIDAQABo4HQMIHNMA4G +A1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYD +VR0TAQH/BAIwADAfBgNVHSMEGDAWgBRQfEdSX8zI0mvbVoU7AsYtFA5W8zBtBgNV +HREEZjBkggxzZXJ2ZXIxLnRlc3SCDiouc2VydmVyMS50ZXN0ggxzZXJ2ZXIyLnRl +c3SCDHNlcnZlcjMudGVzdIIVbGliZXJ2aWEtYmFja2VuZC50ZXN0ghFsaWJlcnZp +YS13ZWIudGVzdDANBgkqhkiG9w0BAQsFAAOCAQEAetIuuZd7O0G8ssueqddVfedM +syL4NZp/I6AWy9qiUcKf9lhGtLE3AblL5fhHanty94B4EyW5+8fjSrSSSRbUYkFH +dbS41ptzuPGtU9S7OFp7C1TAZHeAgCdvJ4ZnD2YFNQXJ89bp+ZEi4Znu1avqckJP +gMAd695gZaobZzehwAG00Xd9ELVku3Cnu4gsxMbgvcRFqq4Bplk/YYtDtd9FG2Qr +mSBuUGwGikr9C4xEUw69uIq1SK98qaOBEwUgKYb/Rvh03OP5F2u36zdH8J3W/Mjv +OGYo4RCLZFG0CntYLFTWOAoYRs7C7dlgwXRNgaNaRiseiPDka1DAaf6BQ8riMw== +-----END CERTIFICATE----- diff -r c018c510a562 -r 73e04040d577 docker/prosody-e2e/certificates/server1.test/key.pem --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/prosody-e2e/certificates/server1.test/key.pem Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAtXAh2Mn5eIFLI5v1Zz8+BRsPKfjn1RBBs+ZVVysJez4DOOXc +ouWjOqcMPhWK/lN3NNm3SOWJQRJEZjHaU197YioX1cr1KP1pfAWlm03tMZpf/Xoe +oKpV+6svM2m6emNh6Y812ATin2DIigm2b4UrHiP8Seppd84dReGdpaD97zCZBKv5 +fHCwcY+irjsV+1vRapLDvDMIL/6Vk8Fw3m9UlIhdZNudTKgxo8lYbhuoQsyhG0yd +ALgp+eeNKnZZdBCpdFOtZztbrS0DifQvkKxbv7+V3IAQ+4lLAfLoFNuVH5cukfuJ +bR9UjyqvBH16yCE2VNvL+dDZXYmh/q3yTF0MgQIDAQABAoIBAFCxZSxAb6Yrgpp8 +s0DO/KtSpITbQWgeCcqTxyK0bkwUgWRdvqnoDZd5UdWOyTlhL6QerAhMpaV+FVOK +Gnp3/azj4aPg1vX69l4FOOkAWFx2NvjJxjNYblM2iBCKljf2WUaBvcWsLooJhkb2 +GOAyTsHh6UOKcIuq7JP2yqEuH6GvsD9z5B82d/uWtCMlf4PA26R6GGrEaJ4ARY0y +ePthWmYOJdZi2CLf5RTfd3Y89EKkYbyj+/bmGTFrPThJwBcqjiTV+/Mu3rE7RG/i +hkZWZi7Q319w/i83In0vHReSb/DOiwjYp+ChPjvKdv0DjL4RyfX5vSkZDDC+LKI8 +5fwEgy0CgYEA51LSAd2DGtYieeQc9jGiUtXzbxvTObGP01NcCX7iS04EF1czj/Ur +Zrqwsc7yKkdJWaAn12JOolPOZtjEeU4Q3/Oyen9LdxsfPNzpHKqlcOJ/xVWZ/ikY +WLn5nwpD8HLkx+WZj7TzbBqcs9UiKRkW7bUC3A7KDeBH/nMBDjWwJjcCgYEAyMr/ +AlpRf7OgYnOgEFYcHbNNzp2b7p5lK+8eDrEiRW+U3aT00f8+ZeqF6wSe0hn3gs94 +6IzRtrr0SBObi7My5t6duz56a6K3NE4JhI+3/P2YyQy/2lhYUkA7CG1YMJzvkVaM +bSuY9bMptzVpjL6Sn3kyHoW/R9d9i3n0ipBDhwcCgYEA2bLy2ziJwv7VkVsh+nx5 +pHWf1Ogd4IT/s0UXMASOmYpBhWnWp9t2zgZSdfQpqapPGJ8F/8iP8mrmq5nDRdo3 +PVyOkoQsFFqdCl1osUbTzioLTz6hXzVzqUTU7Fzv1WF7d7jXzQvhrtJYuVGTBZSM +JIeeulTcyTRS7N90ldfm//8CgYEAl1ia+jUFtRG51Dt+7JFbQ+/At/oIbMWrUIA9 +0akmQdwnAyGw/xA7AirRoiGrbIXyEAE+C1sJP4iPVDyjQ5tgxLALh/VB5RuSp7Qi +bG6/qcuke/ZGLdflSqnrVSDGFm5UDOKFmkwAUUIoMVXrJxEGB3ockvERCp+cm6Li +9gZjP8UCgYATWrDUb3+LOVHIVuYcrd9CDfO7OHT1yxmnef2hBYYs8MQ2ewVBTWkq +jzTPuUCub6T72uVpefOciBByqbgUUUnXgfX8nTT2BEBGjoubf3/77RvsEnrEGEI/ +XncILicM1dwQXqR5fWDcpWRhehIzlzF70iZ3Ws1QC63gv4Z6VGifMQ== +-----END RSA PRIVATE KEY----- diff -r c018c510a562 -r 73e04040d577 docker/prosody-e2e/entrypoint.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/prosody-e2e/entrypoint.sh Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,15 @@ +#!/bin/bash +set -e + +usermod -u "$(stat -c %u /var/lib/prosody/.)" prosody + +if [[ "$1" != "prosody" ]]; then + exec prosodyctl "$@" + exit 0; +fi + +if [ "$LOCAL" -a "$PASSWORD" -a "$DOMAIN" ] ; then + prosodyctl register "$LOCAL" "$DOMAIN" "$PASSWORD" +fi + +exec runuser -u prosody -- "$@" diff -r c018c510a562 -r 73e04040d577 docker/prosody-e2e/prosody.cfg.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/prosody-e2e/prosody.cfg.lua Fri Apr 16 18:32:16 2021 +0200 @@ -0,0 +1,116 @@ +-- Prosody XMPP Server Configuration +-- Adapted for SàT e2e tests + +local socket = require "socket" + +daemonize = false; +admins = { } + +plugin_paths = { "/usr/local/share/prosody/modules" } + +modules_enabled = { + "admin_adhoc"; + "blocklist"; + "carbons"; + "csi"; + "csi_simple"; + "delegation"; + "dialback"; + "disco"; + "mam"; + "pep"; + "ping"; + "private"; + "privilege"; + "register"; + "roster"; + "saslauth"; + "smacks"; + "time"; + "tls"; + "uptime"; + "vcard4"; + "vcard_legacy"; + "version"; + "ipcheck"; +} + +modules_disabled = { +} + +allow_registration = true +registration_whitelist = { socket.dns.toip("backend") } +whitelist_registration_only = true + +c2s_require_encryption = true +s2s_require_encryption = true +s2s_secure_auth = false + +pidfile = "/var/run/prosody/prosody.pid" + +authentication = "internal_hashed" + +archive_expires_after = "1d" + +log = { + {levels = {min = "info"}, to = "console"}; +} + +certificates = "certs" + +ssl = { + key = "/usr/share/libervia/certificates/server1.test-key.pem"; + certificate = "/usr/share/libervia/certificates/server1.test.pem"; +} + +component_interface = "*" + +VirtualHost "server1.test" + privileged_entities = { + ["pubsub.server1.test"] = { + roster = "get"; + message = "outgoing"; + presence = "roster"; + }, + } + + delegations = { + ["urn:xmpp:mam:2"] = { + filtering = {"node"}; + jid = "pubsub.server1.test"; + }, + ["http://jabber.org/protocol/pubsub"] = { + jid = "pubsub.server1.test"; + }, + ["http://jabber.org/protocol/pubsub#owner"] = { + jid = "pubsub.server1.test"; + }, + ["https://salut-a-toi/protocol/schema:0"] = { + jid = "pubsub.server1.test"; + }, + ["http://jabber.org/protocol/disco#items:*"] = { + jid = "pubsub.server1.test"; + }, + ["https://salut-a-toi.org/spec/pubsub_admin:0"] = { + jid = "pubsub.server1.test"; + }, + } + +VirtualHost "server2.test" + +VirtualHost "server3.test" + +-- Component "muc.server1.test" "muc" +-- modules_enabled = { +-- "muc_mam"; +-- "vcard"; +-- } + +Component "pubsub.server1.test" + component_secret = "test_e2e" + modules_enabled = {"privilege", "delegation"} + +Component "proxy.server1.test" "proxy65" + +Component "files.server1.test" + component_secret = "test_e2e" diff -r c018c510a562 -r 73e04040d577 docker/prosody_e2e/Dockerfile --- a/docker/prosody_e2e/Dockerfile Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -FROM prosody/prosody - -LABEL maintainer="Goffi " - -ARG DEBIAN_FRONTEND=noninteractive - -# we synchronize tls-cert group with the one in salutatoi/sat -RUN addgroup tls-cert --gid 9999 && adduser prosody tls-cert && \ - # we want third party modules - apt-get update && apt-get install -y --no-install-recommends mercurial && \ - mkdir -p /usr/local/share/prosody && \ - hg clone https://hg.prosody.im/prosody-modules /usr/local/share/prosody/modules && \ - chown -R prosody:prosody /usr/local/share/prosody - -COPY --chown=root:prosody prosody.cfg.lua /etc/prosody/prosody.cfg.lua -COPY --chown=root:tls-cert certificates/server1.test/cert.pem /usr/share/sat/certificates/server1.test.pem -COPY --chown=root:tls-cert certificates/server1.test/key.pem /usr/share/sat/certificates/server1.test-key.pem - -# we add exec to handle properly signals, this is missing upstream -# FIXME: to be removed when new images are generated with -# https://github.com/prosody/prosody-docker/pull/65 -RUN sed -i "s/^runuser -u prosody/exec \0/" /entrypoint.sh diff -r c018c510a562 -r 73e04040d577 docker/prosody_e2e/certificates/README --- a/docker/prosody_e2e/certificates/README Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -this certificates are used to enable TLS during tests. Those must be the same as in -backend_e2e (they are generated there) diff -r c018c510a562 -r 73e04040d577 docker/prosody_e2e/certificates/server1.test/cert.pem --- a/docker/prosody_e2e/certificates/server1.test/cert.pem Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDgzCCAmugAwIBAgIIZiX7tomjsm8wDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE -AxMVbWluaWNhIHJvb3QgY2EgNjFjNWEyMB4XDTIwMTExOTE3MTAwMFoXDTIyMTIx -OTE3MTAwMFowFzEVMBMGA1UEAxMMc2VydmVyMS50ZXN0MIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEAqO9edKoh9DZfVeb8n0iCJ375QqVVHuS3AI22VTRL -sa6lYYjjlcag4GeJScZNnQzdBHLRfsZBVKIYbPPuB4+p7w5V56n61kPd7oWTEfe8 -UYvgQOcEo7u7EDMIgFkgtMLJBMUBLPdBwNjeQdFk+yg+pUls7LXXzZXZsrupLfvP -YP81xZiD9BHk6/D0ia4oaQ873VAZwuFviqO+7asn46AyR94n3MlABG7iyKoSs/rO -Yh13cFEEvbIE/nHTr+rbeswHUtZwKhqQ83iuAphTUlNliAiGHKPxLjojYjGGq7ES -6BUs4REeyavaYFzyh3JUyicBYqLvMPy449PVkCTF//XRAQIDAQABo4HJMIHGMA4G -A1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYD -VR0TAQH/BAIwADAfBgNVHSMEGDAWgBRQfEdSX8zI0mvbVoU7AsYtFA5W8zBmBgNV -HREEXzBdggxzZXJ2ZXIxLnRlc3SCDiouc2VydmVyMS50ZXN0ggxzZXJ2ZXIyLnRl -c3SCDHNlcnZlcjMudGVzdIIIc2F0LnRlc3SCCGxpYmVydmlhgg1saWJlcnZpYS50 -ZXN0MA0GCSqGSIb3DQEBCwUAA4IBAQCGar+WGZZVouJHCTcI5NEIqE7+j8ooLAQA -r57rYnjOQEVp0hCM4gGUoolp0iq7GC6Ep8hptRwSlvm4P6nR4MrXoqE+La/qrygO -1aue4td+4HUFLyPkjMRwOA5Mzg0reGcOI+Ptc47zyIgij+HmUROu/D/Xdoat0LGN -rzqmaTYhZ7Ifh2XtcZPfkFmYh/JEF7qgspNatOmka2XSLwzzRDTERN8Z04rB2NfA -n2xoadafPDu9ZnIrWNi+MVvvNwtppWZ1TXHaYEWW2dx2nXdCbsIJaUwaKDAfyppk -+SHxauKPbpvx8m38nKw7cC54miMR1PHyIspK8Fpc84tMCDU/vCfL ------END CERTIFICATE----- diff -r c018c510a562 -r 73e04040d577 docker/prosody_e2e/certificates/server1.test/key.pem --- a/docker/prosody_e2e/certificates/server1.test/key.pem Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEpQIBAAKCAQEAqO9edKoh9DZfVeb8n0iCJ375QqVVHuS3AI22VTRLsa6lYYjj -lcag4GeJScZNnQzdBHLRfsZBVKIYbPPuB4+p7w5V56n61kPd7oWTEfe8UYvgQOcE -o7u7EDMIgFkgtMLJBMUBLPdBwNjeQdFk+yg+pUls7LXXzZXZsrupLfvPYP81xZiD -9BHk6/D0ia4oaQ873VAZwuFviqO+7asn46AyR94n3MlABG7iyKoSs/rOYh13cFEE -vbIE/nHTr+rbeswHUtZwKhqQ83iuAphTUlNliAiGHKPxLjojYjGGq7ES6BUs4REe -yavaYFzyh3JUyicBYqLvMPy449PVkCTF//XRAQIDAQABAoIBAFt8PdfKJtcc9uYL -UDVmS+3dqlj4Ni+jxqMLG3nq9y8DGFbIjg8XYRoFl+iW9oMdaze0glU4Qjr2CWo/ -c2Eu4OUwCz+I4ulUGYTJW4r4cUhsCoa7VNzilnxAVtNC8R5S+g+WLHvQbxBjoYFd -R2VoNvzF1bIfC/4ur5VGYWkgm/63dTdDd2dJoQp30cypL5lL6v+T3FxkcTEYYuu2 -Q05mwXZ/zekzwQqPKX0/M/UxlqeItlM7rsIp7+baAdoXEzxzadGkFdUgE+jh5fwG -gdWiTJLSToZrlfpTthkZ3IegDhHHBlRHR8BQq0MypR/j6eM/iONQnvuODx6eaTqQ -Lf/h1UECgYEAxVbiqgDNp3z/D9bwJfYWneLrdJ6Bm8NJiJLEG8nlCZW+34wRRyNR -Jlwk6aPzT3ibf6OPaAvCnH0ENBGUyxe/Ri2IeWPF5nmbESq6TqheKJdmFIPQPTCS -KoLWYjbLpTN22Pi8S/OgwbVxyZ09bLjGrjhsHw6GnbZvzPt3T3pvMQkCgYEA2yb4 -oBpeV4A085qt79mq4SK6093f/D9d7yWNmtBlJM5cCurZukvYzNSsGjjwIjVjBlla -mhec+fsXmFUjYefRDLs6vNZuVkrSwC5E9uwDuG89W15BfaIyQjHpAyLFWM2eTivD -Hmr4F8gJ3Rgac1KfdcnxyBOJgwFDsOuSIOT8NjkCgYEAs5RwqlIW1B8MoWZwnasH -Q+C3ciW4Pn4FkbI1ojAlLIbH7viw1HLQKz9ZHADlruFLaGj4XK+vBudBhvyk0fin -SH6xHf5snmL1eTbP2jqfjQLRk0OsobJsoSD1ZOUGhyyBL8uS1u860GyEwvtDZYf0 -zaBszApU+HqH3RrNpVb+jrkCgYEAv5COTi0egHAyWSrBlmJ3q3qXQzG0ZCPj8XKr -GEPH1eeIr4ZgsicwqMPSeM2CovR1zgv3VbEEZ8Oj+WWamy9vHijfjEgIhOe8137a -i9j825BpWt/GcZKBSjmkjDgtt5VtJrm8Qm+Q1ADpFlnGbT4w416WOaVSU7CcQh95 -ScW/7YkCgYEAgA3NJVTGwP7KDqN4VTiJV+8w5q7YiucrZV/eyY0D3jynsPyp5kl2 -gZn1yuGFOjR36JuzzuIdJVNFRn/0z4GDO91Ogba111VLld4LynzR36bDSO/odJqM -ef61ZT4IUHQ+uB3CqFQHAWHT9RmQIylyjKcibIDWcmq2P0Bsq03A4kM= ------END RSA PRIVATE KEY----- diff -r c018c510a562 -r 73e04040d577 docker/prosody_e2e/entrypoint.sh --- a/docker/prosody_e2e/entrypoint.sh Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -#!/bin/bash -set -e - -usermod -u "$(stat -c %u /var/lib/prosody/.)" prosody - -if [[ "$1" != "prosody" ]]; then - exec prosodyctl "$@" - exit 0; -fi - -if [ "$LOCAL" -a "$PASSWORD" -a "$DOMAIN" ] ; then - prosodyctl register "$LOCAL" "$DOMAIN" "$PASSWORD" -fi - -exec runuser -u prosody -- "$@" diff -r c018c510a562 -r 73e04040d577 docker/prosody_e2e/prosody.cfg.lua --- a/docker/prosody_e2e/prosody.cfg.lua Wed Apr 14 15:54:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,116 +0,0 @@ --- Prosody XMPP Server Configuration --- Adapted for SàT e2e tests - -local socket = require "socket" - -daemonize = false; -admins = { } - -plugin_paths = { "/usr/local/share/prosody/modules" } - -modules_enabled = { - "admin_adhoc"; - "blocklist"; - "carbons"; - "csi"; - "csi_simple"; - "delegation"; - "dialback"; - "disco"; - "mam"; - "pep"; - "ping"; - "private"; - "privilege"; - "register"; - "roster"; - "saslauth"; - "smacks"; - "time"; - "tls"; - "uptime"; - "vcard4"; - "vcard_legacy"; - "version"; - "ipcheck"; -} - -modules_disabled = { -} - -allow_registration = true -registration_whitelist = { socket.dns.toip("sat") } -whitelist_registration_only = true - -c2s_require_encryption = true -s2s_require_encryption = true -s2s_secure_auth = false - -pidfile = "/var/run/prosody/prosody.pid" - -authentication = "internal_hashed" - -archive_expires_after = "1d" - -log = { - {levels = {min = "info"}, to = "console"}; -} - -certificates = "certs" - -ssl = { - key = "/usr/share/sat/certificates/server1.test-key.pem"; - certificate = "/usr/share/sat/certificates/server1.test.pem"; -} - -component_interface = "*" - -VirtualHost "server1.test" - privileged_entities = { - ["pubsub.server1.test"] = { - roster = "get"; - message = "outgoing"; - presence = "roster"; - }, - } - - delegations = { - ["urn:xmpp:mam:2"] = { - filtering = {"node"}; - jid = "pubsub.server1.test"; - }, - ["http://jabber.org/protocol/pubsub"] = { - jid = "pubsub.server1.test"; - }, - ["http://jabber.org/protocol/pubsub#owner"] = { - jid = "pubsub.server1.test"; - }, - ["https://salut-a-toi/protocol/schema:0"] = { - jid = "pubsub.server1.test"; - }, - ["http://jabber.org/protocol/disco#items:*"] = { - jid = "pubsub.server1.test"; - }, - ["https://salut-a-toi.org/spec/pubsub_admin:0"] = { - jid = "pubsub.server1.test"; - }, - } - -VirtualHost "server2.test" - -VirtualHost "server3.test" - --- Component "muc.server1.test" "muc" --- modules_enabled = { --- "muc_mam"; --- "vcard"; --- } - -Component "pubsub.server1.test" - component_secret = "test_e2e" - modules_enabled = {"privilege", "delegation"} - -Component "proxy.server1.test" "proxy65" - -Component "files.server1.test" - component_secret = "test_e2e" diff -r c018c510a562 -r 73e04040d577 docker/pubsub/Dockerfile --- a/docker/pubsub/Dockerfile Wed Apr 14 15:54:26 2021 +0200 +++ b/docker/pubsub/Dockerfile Fri Apr 16 18:32:16 2021 +0200 @@ -4,8 +4,6 @@ ARG DEBIAN_FRONTEND=noninteractive -RUN \ - RUN apt-get update && apt-get upgrade -y && \ apt-get install -y --no-install-recommends locales python3-dev python3-venv python3-wheel mercurial libpq-dev gcc gnupg && \ # we install postgresql repository to have latest version @@ -14,23 +12,23 @@ # now we can install the client apt-get install -y --no-install-recommends postgresql-client && \ # it's better to have a dedicated user - useradd -m sat && \ - mkdir /src && chown sat:sat /src && \ + useradd -m libervia && \ + mkdir /src && chown libervia:libervia /src && \ # we need UTF-8 locale sed -i "s/# en_US.UTF-8/en_US.UTF-8/" /etc/locale.gen && locale-gen ENV LC_ALL en_US.UTF-8 -WORKDIR /home/sat -COPY entrypoint.sh /home/sat -RUN chown sat:sat /home/sat/entrypoint.sh && chmod 0555 /home/sat/entrypoint.sh +WORKDIR /home/libervia +COPY entrypoint.sh /home/libervia +RUN chown libervia:libervia /home/libervia/entrypoint.sh && chmod 0555 /home/libervia/entrypoint.sh -USER sat -RUN python3 -m venv sat_env && sat_env/bin/pip install wheel && cd /src && \ +USER libervia +RUN python3 -m venv libervia_env && libervia_env/bin/pip install -U pip wheel && cd /src && \ # we install thoses packages in editable mode, so we can replace them easily with volumes - hg clone https://repos.goffi.org/sat_tmp && ~/sat_env/bin/pip install -e sat_tmp && \ - mv sat_tmp/sat_tmp.egg-info ~/sat_env/lib/python3.*/site-packages && \ - hg clone https://repos.goffi.org/sat_pubsub && ~/sat_env/bin/pip install -e sat_pubsub && \ - mv sat_pubsub/sat_pubsub.egg-info ~/sat_env/lib/python3.*/site-packages + hg clone https://repos.goffi.org/sat_tmp && ~/libervia_env/bin/pip install -e sat_tmp && \ + mv sat_tmp/sat_tmp.egg-info ~/libervia_env/lib/python3.*/site-packages && \ + hg clone https://repos.goffi.org/sat_pubsub && ~/libervia_env/bin/pip install -e sat_pubsub && \ + mv sat_pubsub/sat_pubsub.egg-info ~/libervia_env/lib/python3.*/site-packages -ENTRYPOINT ["/home/sat/entrypoint.sh"] +ENTRYPOINT ["/home/libervia/entrypoint.sh"] diff -r c018c510a562 -r 73e04040d577 docker/pubsub/entrypoint.sh --- a/docker/pubsub/entrypoint.sh Wed Apr 14 15:54:26 2021 +0200 +++ b/docker/pubsub/entrypoint.sh Fri Apr 16 18:32:16 2021 +0200 @@ -26,4 +26,4 @@ cd $ori_dir -exec /home/sat/sat_env/bin/twistd -n sat-pubsub "$@" +exec /home/libervia/libervia_env/bin/twistd -n libervia-pubsub "$@"