mirror of
https://github.com/penpot/penpot.git
synced 2025-12-11 22:14:05 +01:00
✨ Make devenv https and http2 capable (#7871)
Making it more similar on how it runs on production environments and improves large amount of files loading thanks to http2.
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
export PENPOT_MANAGEMENT_API_KEY=super-secret-management-api-key
|
export PENPOT_MANAGEMENT_API_KEY=super-secret-management-api-key
|
||||||
export PENPOT_SECRET_KEY=super-secret-devenv-key
|
export PENPOT_SECRET_KEY=super-secret-devenv-key
|
||||||
export PENPOT_HOST=devenv
|
export PENPOT_HOST=devenv
|
||||||
|
export PENPOT_PUBLIC_URI=https://localhost:3449
|
||||||
|
|
||||||
export PENPOT_FLAGS="\
|
export PENPOT_FLAGS="\
|
||||||
$PENPOT_FLAGS \
|
$PENPOT_FLAGS \
|
||||||
|
|||||||
@@ -101,6 +101,38 @@ RUN set -eux; \
|
|||||||
corepack enable; \
|
corepack enable; \
|
||||||
rm -rf /tmp/nodejs.tar.gz;
|
rm -rf /tmp/nodejs.tar.gz;
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
## CADDYSERVER SETUP
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
FROM base AS setup-caddy
|
||||||
|
|
||||||
|
ENV CADDY_VERSION=2.10.2
|
||||||
|
|
||||||
|
RUN set -eux; \
|
||||||
|
ARCH="$(dpkg --print-architecture)"; \
|
||||||
|
case "${ARCH}" in \
|
||||||
|
aarch64|arm64) \
|
||||||
|
BINARY_URL="https://github.com/caddyserver/caddy/releases/download/v${CADDY_VERSION}/caddy_${CADDY_VERSION}_linux_arm64.tar.gz"; \
|
||||||
|
;; \
|
||||||
|
amd64|x86_64) \
|
||||||
|
BINARY_URL="https://github.com/caddyserver/caddy/releases/download/v${CADDY_VERSION}/caddy_${CADDY_VERSION}_linux_amd64.tar.gz"; \
|
||||||
|
;; \
|
||||||
|
*) \
|
||||||
|
echo "Unsupported arch: ${ARCH}"; \
|
||||||
|
exit 1; \
|
||||||
|
;; \
|
||||||
|
esac; \
|
||||||
|
curl -LfsSo /tmp/caddy.tar.gz ${BINARY_URL}; \
|
||||||
|
mkdir -p /tmp/caddy; \
|
||||||
|
cd /tmp/caddy; \
|
||||||
|
tar -xf /tmp/caddy.tar.gz; \
|
||||||
|
chown -R root /tmp/caddy; \
|
||||||
|
mv /tmp/caddy/caddy /usr/bin/; \
|
||||||
|
rm -rf /tmp/caddy.tar.gz; \
|
||||||
|
rm -rf /tmp/caddy;
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
## JVM SETUP
|
## JVM SETUP
|
||||||
################################################################################
|
################################################################################
|
||||||
@@ -393,6 +425,7 @@ COPY --from=setup-utils /opt/utils /opt/utils
|
|||||||
COPY --from=setup-rust /opt/cargo /opt/cargo
|
COPY --from=setup-rust /opt/cargo /opt/cargo
|
||||||
COPY --from=setup-rust /opt/rustup /opt/rustup
|
COPY --from=setup-rust /opt/rustup /opt/rustup
|
||||||
COPY --from=setup-rust /opt/emsdk /opt/emsdk
|
COPY --from=setup-rust /opt/emsdk /opt/emsdk
|
||||||
|
COPY --from=setup-caddy /usr/bin/caddy /usr/bin/caddy
|
||||||
|
|
||||||
COPY files/nginx.conf /etc/nginx/nginx.conf
|
COPY files/nginx.conf /etc/nginx/nginx.conf
|
||||||
COPY files/nginx-mime.types /etc/nginx/mime.types
|
COPY files/nginx-mime.types /etc/nginx/mime.types
|
||||||
@@ -403,6 +436,9 @@ COPY files/vimrc /root/.vimrc
|
|||||||
COPY files/tmux.conf /root/.tmux.conf
|
COPY files/tmux.conf /root/.tmux.conf
|
||||||
COPY files/sudoers /etc/sudoers
|
COPY files/sudoers /etc/sudoers
|
||||||
|
|
||||||
|
COPY files/Caddyfile /home/
|
||||||
|
COPY files/selfsigned.crt /home/
|
||||||
|
COPY files/selfsigned.key /home/
|
||||||
COPY files/start-tmux.sh /home/start-tmux.sh
|
COPY files/start-tmux.sh /home/start-tmux.sh
|
||||||
COPY files/start-tmux-back.sh /home/start-tmux-back.sh
|
COPY files/start-tmux-back.sh /home/start-tmux-back.sh
|
||||||
COPY files/entrypoint.sh /home/entrypoint.sh
|
COPY files/entrypoint.sh /home/entrypoint.sh
|
||||||
|
|||||||
@@ -33,6 +33,8 @@ services:
|
|||||||
- 3447:3447
|
- 3447:3447
|
||||||
- 3448:3448
|
- 3448:3448
|
||||||
- 3449:3449
|
- 3449:3449
|
||||||
|
- 3449:3449/udp
|
||||||
|
- 3450:3450
|
||||||
- 6006:6006
|
- 6006:6006
|
||||||
- 6060:6060
|
- 6060:6060
|
||||||
- 6061:6061
|
- 6061:6061
|
||||||
|
|||||||
29
docker/devenv/files/Caddyfile
Normal file
29
docker/devenv/files/Caddyfile
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
auto_https off
|
||||||
|
}
|
||||||
|
|
||||||
|
localhost:3449 {
|
||||||
|
reverse_proxy localhost:4449
|
||||||
|
tls /home/selfsigned.crt /home/selfsigned.key
|
||||||
|
|
||||||
|
log {
|
||||||
|
format console
|
||||||
|
output file /home/penpot/penpot/logs/caddy.access.log {
|
||||||
|
roll_size 10MB # Create new file when size exceeds 10MB
|
||||||
|
roll_keep 5 # Keep at most 5 rolled files
|
||||||
|
roll_keep_for 14d # Delete files older than 14 days
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
http://localhost:3450 {
|
||||||
|
reverse_proxy localhost:4449
|
||||||
|
log {
|
||||||
|
format console
|
||||||
|
output file /home/penpot/penpot/logs/caddy.access.log {
|
||||||
|
roll_size 10MB # Create new file when size exceeds 10MB
|
||||||
|
roll_keep 5 # Keep at most 5 rolled files
|
||||||
|
roll_keep_for 14d # Delete files older than 14 days
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,4 +2,6 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
nginx
|
nginx
|
||||||
tail -f /dev/null
|
mkdir -p penpot/logs
|
||||||
|
caddy start -c /home/Caddyfile
|
||||||
|
tail -f /dev/null;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ http {
|
|||||||
sendfile on;
|
sendfile on;
|
||||||
tcp_nopush on;
|
tcp_nopush on;
|
||||||
tcp_nodelay on;
|
tcp_nodelay on;
|
||||||
keepalive_timeout 0;
|
keepalive_timeout 100;
|
||||||
types_hash_max_size 2048;
|
types_hash_max_size 2048;
|
||||||
server_tokens off;
|
server_tokens off;
|
||||||
|
|
||||||
@@ -55,7 +55,7 @@ http {
|
|||||||
proxy_cache_key "$host$request_uri";
|
proxy_cache_key "$host$request_uri";
|
||||||
|
|
||||||
server {
|
server {
|
||||||
listen 3449 default_server;
|
listen 4449 default_server;
|
||||||
server_name _;
|
server_name _;
|
||||||
|
|
||||||
client_max_body_size 300M;
|
client_max_body_size 300M;
|
||||||
@@ -231,7 +231,6 @@ http {
|
|||||||
}
|
}
|
||||||
|
|
||||||
add_header Cache-Control "no-store";
|
add_header Cache-Control "no-store";
|
||||||
add_header Connection close always;
|
|
||||||
# This header is what we need to use on prod
|
# This header is what we need to use on prod
|
||||||
# add_header Cache-Control "public, must-revalidate, max-age=0";
|
# add_header Cache-Control "public, must-revalidate, max-age=0";
|
||||||
try_files $uri /index.html$is_args$args /index.html =404;
|
try_files $uri /index.html$is_args$args /index.html =404;
|
||||||
|
|||||||
22
docker/devenv/files/selfsigned.crt
Normal file
22
docker/devenv/files/selfsigned.crt
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDuzCCAqOgAwIBAgIUa3THJQSn1+ErK65g1jDL0tjUkBYwDQYJKoZIhvcNAQEL
|
||||||
|
BQAwXzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBUxvY2FsMQ4wDAYDVQQHDAVMb2Nh
|
||||||
|
bDEOMAwGA1UECgwFTG9jYWwxDDAKBgNVBAsMA0RldjESMBAGA1UEAwwJbG9jYWxo
|
||||||
|
b3N0MB4XDTI1MTIwMjA4MjUyM1oXDTI2MTIwMjA4MjUyM1owXzELMAkGA1UEBhMC
|
||||||
|
VVMxDjAMBgNVBAgMBUxvY2FsMQ4wDAYDVQQHDAVMb2NhbDEOMAwGA1UECgwFTG9j
|
||||||
|
YWwxDDAKBgNVBAsMA0RldjESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG
|
||||||
|
9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyVIlfpIPE+QyL/q7IQOilEA7wEOZ6wbsh2Fr
|
||||||
|
59H1gSLFvgoCxI6RVUkQ/MFRnw/r1ZbAqRpc2xAl5a9Ml14q20Zlj6dAHsWX6O2J
|
||||||
|
EwNsD18dQmX3BncnjV3yCZM2iQcMFKuXG4KQNdIQNNvdIgtlrHYp0ohS9s3XC7cj
|
||||||
|
KxNrm/pW9EAXfn9AYDd/qER090L2E4ipP9m/5l3MjinNc4l2kpH9rLOgb79H0RLt
|
||||||
|
PK3/KP8ErZhAvzdmDBAdM5Z5K37b+TfB/kSVNUKL6qyw5CCjlShERLhBNprlnRfz
|
||||||
|
tHNIQ1RHq3qJJN19ZnJrLqICuQ5ztvj7hBDiOSV0LnmyKgXr6wIDAQABo28wbTAd
|
||||||
|
BgNVHQ4EFgQUPL8WGf6z/wB8TimJBx1zybsIeikwHwYDVR0jBBgwFoAUPL8WGf6z
|
||||||
|
/wB8TimJBx1zybsIeikwDwYDVR0TAQH/BAUwAwEB/zAaBgNVHREEEzARgglsb2Nh
|
||||||
|
bGhvc3SHBH8AAAEwDQYJKoZIhvcNAQELBQADggEBACMMVyR3kbNxnzuUc2lahKH4
|
||||||
|
cPXVWOsvCvnDtjzm41XmKjUJTbtjn3p5d/ZmLbZ4zzIQULfWXO3XG/HevkvVo0g6
|
||||||
|
6pJXTXc6C6ZhFG0rIYMcPPzmGmalDV5n+lUaCVx5XbFFxvRQ7893auwhRATdwGs+
|
||||||
|
xiMyYbE2w9otKqyDItmJZJ5nW6vmXJ42YHxlXF18u9U88xqtOSMd5xZahbsmw7Gg
|
||||||
|
A4/o4TPoAX5QfA306sL443WaczsF7bmsTf9qcYa/3xxQkP5Seyqx8ePWpS22qysE
|
||||||
|
jG6XPpymxb6sb2mVaFBAzhEMb/eBvE9nRAopxmB7uV4TbqC51K/U3uo6jFX4Jbw=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
28
docker/devenv/files/selfsigned.key
Normal file
28
docker/devenv/files/selfsigned.key
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDJUiV+kg8T5DIv
|
||||||
|
+rshA6KUQDvAQ5nrBuyHYWvn0fWBIsW+CgLEjpFVSRD8wVGfD+vVlsCpGlzbECXl
|
||||||
|
r0yXXirbRmWPp0AexZfo7YkTA2wPXx1CZfcGdyeNXfIJkzaJBwwUq5cbgpA10hA0
|
||||||
|
290iC2WsdinSiFL2zdcLtyMrE2ub+lb0QBd+f0BgN3+oRHT3QvYTiKk/2b/mXcyO
|
||||||
|
Kc1ziXaSkf2ss6Bvv0fREu08rf8o/wStmEC/N2YMEB0zlnkrftv5N8H+RJU1Qovq
|
||||||
|
rLDkIKOVKEREuEE2muWdF/O0c0hDVEereokk3X1mcmsuogK5DnO2+PuEEOI5JXQu
|
||||||
|
ebIqBevrAgMBAAECggEABqtE+LNn8nW9v98jcc2IBjc2g4D5yVJaZYWxqGVJJ7T6
|
||||||
|
Lfhw7Qf4AoZAHM9en9FMM7Ahw7hO2SboynoLJHyHGOp1FNQqiJptFNdBkjKr0rqI
|
||||||
|
4pk0HK+3zLQO/4gz50gne0vP3qZtlorV5Jpf8e/Et3jWm9XOQcTB2e6AKL4k827B
|
||||||
|
dv4Tld+/7PoZVXjahfrUWuIZr5mzyF1eUkD8sPOpdr3HJxSueqsOMjbG8XMRqCQ+
|
||||||
|
5eCWWSW5yPQlMr7M7cXM+a0k73Xn1sKl7fP3/9byji25zxGUaMu5RA1kw0Oqseid
|
||||||
|
RXuRxGphGZgnx1aFxDAPg3FtmGch7/Cc6WfqboOL0QKBgQD4GZO1gGaE8cg4lvuo
|
||||||
|
ZUX2YJu6UJuNOmuhfvG3ui4WO9PHy3btc2q+3kutSuBcyIjhi+qbXasBcX/QOOJF
|
||||||
|
udyTZc5PopNkJojS4JdXAZCiu5sKI3lp4DIt9qNISlXGgrJgdxGUO+DzarBctXdn
|
||||||
|
BSwXFw5hcjJjl7wsPGQl1tBTQwKBgQDPuz5MEM5ZeUe9CT5sQDq/ld0u4aL5AHmx
|
||||||
|
aaA2gzDgd9l2R5wHX6wLzjoVWXOmeqaYzJopt2JN4iXrtbjWkyePgZeZMyWoyJ/v
|
||||||
|
clW9bi8HM9f9EpPr7czSj9sLUnsjd9cuTD+JuXK//jRGbRpw7r7nWtLHImjj6d2v
|
||||||
|
APZRq0v2OQKBgBcESG/OObSbubeGSlKVEqiIzem7ELNJeDLDVCl3XE8zvbILbj0Z
|
||||||
|
OA39EYhCKg5xjEFgeaNwTS0VGoZ2wIc3dv81sq4wpvvjl035CBFKU+DFBt0p7Vml
|
||||||
|
MwKQnxVV0B9agLHyWe8mnvf2LeZr72ffUvfRa8QelA4pRYvVDnV0OF+BAoGAW6rM
|
||||||
|
+tQPuvwB5DFIEozlX9XKHP4E5MyI5vktceDCmMtKcx92gup9CVif2Pv4ROaqzZK8
|
||||||
|
FNyPzL6W7UTrpASb2H/fXgNsAudFbGyP2V/d8Ne34D1qeRoe4GwKxRxIqoYftpZ/
|
||||||
|
E096i66pcsqCeINiSsWRbb6JesmgwbEzAScOBkECgYEA6O/Dibc9PaqRpaiE6Qut
|
||||||
|
S3W/Rr1Pd1jbN4rOVI2TFCgMJQmc6jOdq2fCntR9acsa8HPx+djOlXTUBPKBZ/Ae
|
||||||
|
p8umRdXVWcNMnwWVWHt7tsEuR/gYkxQ5xjXeS1VDPnEre9+EaevMBuVs8HdRsKQO
|
||||||
|
uzvNGeAFEfqwIqn7CFQ+ndU=
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
Reference in New Issue
Block a user