Greg-House commited on
Commit
d68d084
·
verified ·
1 Parent(s): b4288ad

Create default.nix

Browse files
Files changed (1) hide show
  1. 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
+ }