Spaces:
Paused
Paused
Create default.nix
Browse files- default.nix +72 -0
default.nix
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{ pkgs ? import <nixpkgs> {} }:
|
| 2 |
+
|
| 3 |
+
let
|
| 4 |
+
s6 = pkgs.s6-overlay;
|
| 5 |
+
|
| 6 |
+
apacheCfg = ''
|
| 7 |
+
Listen 7890
|
| 8 |
+
<VirtualHost *:7890>
|
| 9 |
+
DocumentRoot "/var/www/nextcloud"
|
| 10 |
+
<Directory "/var/www/nextcloud">
|
| 11 |
+
AllowOverride All
|
| 12 |
+
Require all granted
|
| 13 |
+
</Directory>
|
| 14 |
+
</VirtualHost>
|
| 15 |
+
'';
|
| 16 |
+
|
| 17 |
+
collaboraNoSSL = ''
|
| 18 |
+
<config>
|
| 19 |
+
<server_name>localhost</server_name>
|
| 20 |
+
<ssl>
|
| 21 |
+
<enable>false</enable>
|
| 22 |
+
</ssl>
|
| 23 |
+
</config>
|
| 24 |
+
'';
|
| 25 |
+
|
| 26 |
+
in pkgs.dockerTools.buildImage {
|
| 27 |
+
name = "nextcloud-collabora-nix";
|
| 28 |
+
tag = "latest";
|
| 29 |
+
|
| 30 |
+
contents = [
|
| 31 |
+
pkgs.nextcloud
|
| 32 |
+
pkgs.apacheHttpd
|
| 33 |
+
pkgs.php
|
| 34 |
+
pkgs.collabora-online
|
| 35 |
+
s6
|
| 36 |
+
];
|
| 37 |
+
|
| 38 |
+
extraCommands = ''
|
| 39 |
+
# Apache config
|
| 40 |
+
mkdir -p /etc/apache2
|
| 41 |
+
echo "${apacheCfg}" > /etc/apache2/httpd.conf
|
| 42 |
+
|
| 43 |
+
# Nextcloud directory
|
| 44 |
+
mkdir -p /var/www/nextcloud
|
| 45 |
+
cp -r ${pkgs.nextcloud}/. /var/www/nextcloud
|
| 46 |
+
chown -R 33:33 /var/www/nextcloud
|
| 47 |
+
|
| 48 |
+
# Collabora config
|
| 49 |
+
mkdir -p /etc/coolwsd
|
| 50 |
+
echo "${collaboraNoSSL}" > /etc/coolwsd/coolwsd.xml
|
| 51 |
+
|
| 52 |
+
# s6 service definitions
|
| 53 |
+
mkdir -p /etc/services.d/apache
|
| 54 |
+
mkdir -p /etc/services.d/collabora
|
| 55 |
+
|
| 56 |
+
cat > /etc/services.d/apache/run <<EOF
|
| 57 |
+
#!/bin/sh
|
| 58 |
+
exec ${pkgs.apacheHttpd}/bin/httpd -D FOREGROUND -f /etc/apache2/httpd.conf
|
| 59 |
+
EOF
|
| 60 |
+
chmod +x /etc/services.d/apache/run
|
| 61 |
+
|
| 62 |
+
cat > /etc/services.d/collabora/run <<EOF
|
| 63 |
+
#!/bin/sh
|
| 64 |
+
exec ${pkgs.collabora-online}/bin/coolwsd --disable-ssl
|
| 65 |
+
EOF
|
| 66 |
+
chmod +x /etc/services.d/collabora/run
|
| 67 |
+
'';
|
| 68 |
+
|
| 69 |
+
config = {
|
| 70 |
+
Cmd = [ "/init" ];
|
| 71 |
+
};
|
| 72 |
+
}
|