Bläddra i källkod

An optional configuration file

Bob Mottram 10 år sedan
förälder
incheckning
16ad5784f9
2 ändrade filer med 61 tillägg och 1 borttagningar
  1. 1
    1
      README.md
  2. 60
    0
      install-freedombone.sh

+ 1
- 1
README.md Visa fil

@@ -9,7 +9,7 @@ The Freedombone system can be installed onto a Beaglebone Black, or any system c
9 9
  - **Media**: Runs media services such as DLNA to play music or videos on your devices
10 10
  - **Writer**: Host your blog and wiki
11 11
  - **Chat**: Encrypted IRC and XMPP services for one-to-one and many-to-many chat
12
- - **Notmailbox**: Installs eveything except for the email server
12
+ - **Nonmailbox**: Installs eveything except for the email server
13 13
 
14 14
 Unlike certain other self-hosting projects Freedombone has more emphasis on security and privacy. When installed on a Beaglebone Black it uses the built-in hardware random number generator as an entropy source and all communications with the box are encrypted by default using the recommendations from https://bettercrypto.org. The firewall is configured to only allow communications on the necessary ports and to drop all other packets, icmp is disabled by default, emails are stored in encrypted form using your public key and time synchronisation occurs via TLS only.  Backups are also encrypted.
15 15
 

+ 60
- 0
install-freedombone.sh Visa fil

@@ -81,6 +81,9 @@ VARIANT_NONMAILBOX="nonmailbox"
81 81
 VARIANT_SOCIAL="social"
82 82
 VARIANT_MEDIA="media"
83 83
 
84
+# An optional configuration file which overrides some of these variables
85
+CONFIGURATION_FILE="freedombone.cfg"
86
+
84 87
 SSH_PORT=2222
85 88
 
86 89
 # Why use Google as a time source?
@@ -308,6 +311,62 @@ function argument_checks {
308 311
   fi
309 312
 }
310 313
 
314
+function read_configuration {
315
+  if [ -f $CONFIGURATION_FILE ]; then
316
+      if grep -q "INSTALLING_ON_BBB" $CONFIGURATION_FILE; then
317
+          INSTALLING_ON_BBB=$(grep "INSTALLING_ON_BBB" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
318
+      fi
319
+      if grep -q "SSH_PORT" $CONFIGURATION_FILE; then
320
+          SSH_PORT=$(grep "SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
321
+      fi
322
+      if grep -q "INSTALLED_WITHIN_DOCKER" $CONFIGURATION_FILE; then
323
+          INSTALLED_WITHIN_DOCKER=$(grep "INSTALLED_WITHIN_DOCKER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
324
+      fi
325
+      if grep -q "PUBLIC_MAILING_LIST" $CONFIGURATION_FILE; then
326
+          PUBLIC_MAILING_LIST=$(grep "PUBLIC_MAILING_LIST" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
327
+      fi
328
+      if grep -q "MICROBLOG_DOMAIN_NAME" $CONFIGURATION_FILE; then
329
+          MICROBLOG_DOMAIN_NAME=$(grep "MICROBLOG_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
330
+      fi
331
+      if grep -q "MICROBLOG_FREEDNS_SUBDOMAIN_CODE" $CONFIGURATION_FILE; then
332
+          MICROBLOG_FREEDNS_SUBDOMAIN_CODE=$(grep "MICROBLOG_FREEDNS_SUBDOMAIN_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
333
+      fi
334
+      if grep -q "REDMATRIX_DOMAIN_NAME" $CONFIGURATION_FILE; then
335
+          REDMATRIX_DOMAIN_NAME=$(grep "REDMATRIX_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
336
+      fi
337
+      if grep -q "REDMATRIX_FREEDNS_SUBDOMAIN_CODE" $CONFIGURATION_FILE; then
338
+          REDMATRIX_FREEDNS_SUBDOMAIN_CODE=$(grep "REDMATRIX_FREEDNS_SUBDOMAIN_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
339
+      fi
340
+      if grep -q "OWNCLOUD_DOMAIN_NAME" $CONFIGURATION_FILE; then
341
+          OWNCLOUD_DOMAIN_NAME=$(grep "OWNCLOUD_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
342
+      fi
343
+      if grep -q "OWNCLOUD_FREEDNS_SUBDOMAIN_CODE" $CONFIGURATION_FILE; then
344
+          OWNCLOUD_FREEDNS_SUBDOMAIN_CODE=$(grep "OWNCLOUD_FREEDNS_SUBDOMAIN_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
345
+      fi
346
+      if grep -q "WIKI_DOMAIN_NAME" $CONFIGURATION_FILE; then
347
+          WIKI_DOMAIN_NAME=$(grep "WIKI_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
348
+      fi
349
+      if grep -q "WIKI_FREEDNS_SUBDOMAIN_CODE" $CONFIGURATION_FILE; then
350
+          WIKI_FREEDNS_SUBDOMAIN_CODE=$(grep "WIKI_FREEDNS_SUBDOMAIN_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
351
+      fi
352
+      if grep -q "GPG_ENCRYPT_STORED_EMAIL" $CONFIGURATION_FILE; then
353
+          GPG_ENCRYPT_STORED_EMAIL=$(grep "GPG_ENCRYPT_STORED_EMAIL" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
354
+      fi
355
+      if grep -q "MY_GPG_PUBLIC_KEY" $CONFIGURATION_FILE; then
356
+          MY_GPG_PUBLIC_KEY=$(grep "MY_GPG_PUBLIC_KEY" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
357
+      fi
358
+      if grep -q "MY_GPG_PRIVATE_KEY" $CONFIGURATION_FILE; then
359
+          MY_GPG_PRIVATE_KEY=$(grep "MY_GPG_PRIVATE_KEY" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
360
+      fi
361
+      if grep -q "USB_DRIVE" $CONFIGURATION_FILE; then
362
+          USB_DRIVE=$(grep "USB_DRIVE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
363
+      fi
364
+      if grep -q "MAX_PHP_MEMORY" $CONFIGURATION_FILE; then
365
+          MAX_PHP_MEMORY=$(grep "MAX_PHP_MEMORY" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
366
+      fi
367
+  fi
368
+}
369
+
311 370
 function check_hwrng {
312 371
   # If hardware random number generation was enabled then make sure that the device exists.
313 372
   # if /dev/hwrng is not found then any subsequent cryptographic key generation would
@@ -4428,6 +4487,7 @@ function install_final {
4428 4487
   reboot
4429 4488
 }
4430 4489
 
4490
+read_configuration
4431 4491
 argument_checks
4432 4492
 remove_default_user
4433 4493
 configure_firewall