Import themis / PrivateBin #40
@ -1,9 +1,26 @@
 | 
				
			|||||||
 | 
					{%- set common = {'address': '[fd29:8e45:f292:ff80::1]', 'port': 443, 'domain': '.themis.backend.syscid.com', 'snippetsdir': '/etc/apache2/snippets.d/'} -%}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{%- macro httpdformulaexcess() -%}
 | 
				
			||||||
 | 
					      LogLevel: False
 | 
				
			||||||
 | 
					      ErrorLog: False
 | 
				
			||||||
 | 
					      LogFormat: False
 | 
				
			||||||
 | 
					      CustomLog: False
 | 
				
			||||||
 | 
					      ServerAdmin: False
 | 
				
			||||||
 | 
					      ServerAlias: False
 | 
				
			||||||
 | 
					{%- endmacro -%}
 | 
				
			||||||
 | 
					{%- macro httpdcommon(app) -%}
 | 
				
			||||||
 | 
					        Include {{ common['snippetsdir'] }}ssl_themis.conf
 | 
				
			||||||
 | 
					        <FilesMatch '\.php$'>
 | 
				
			||||||
 | 
					          SetHandler 'proxy:unix:/run/php-fpm/{{ app }}.sock|fcgi://{{ app }}'
 | 
				
			||||||
 | 
					        </FilesMatch>
 | 
				
			||||||
 | 
					{%- endmacro -%}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
apache:
 | 
					apache:
 | 
				
			||||||
  sites:
 | 
					  sites:
 | 
				
			||||||
    BookStack:
 | 
					    BookStack:
 | 
				
			||||||
      interface: '[fd29:8e45:f292:ff80::1]'
 | 
					      interface: '{{ common['address'] }}'
 | 
				
			||||||
      port: 443
 | 
					      port: {{ common['port'] }}
 | 
				
			||||||
      ServerName: bookstack.themis.backend.syscid.com
 | 
					      ServerName: bookstack{{ common['domain'] }}
 | 
				
			||||||
      DocumentRoot: /srv/www/BookStack/
 | 
					      DocumentRoot: /srv/www/BookStack/
 | 
				
			||||||
      DirectoryIndex: index.php
 | 
					      DirectoryIndex: index.php
 | 
				
			||||||
      Directory:
 | 
					      Directory:
 | 
				
			||||||
@ -21,19 +38,26 @@ apache:
 | 
				
			|||||||
            RewriteCond '%{REQUEST_FILENAME} !-d'
 | 
					            RewriteCond '%{REQUEST_FILENAME} !-d'
 | 
				
			||||||
            RewriteCond '%{REQUEST_FILENAME} !-f'
 | 
					            RewriteCond '%{REQUEST_FILENAME} !-f'
 | 
				
			||||||
            RewriteCond '^ index.php [L]'
 | 
					            RewriteCond '^ index.php [L]'
 | 
				
			||||||
      LogLevel: False
 | 
					      {{ httpdformulaexcess() }}
 | 
				
			||||||
      ErrorLog: False
 | 
					 | 
				
			||||||
      LogFormat: False
 | 
					 | 
				
			||||||
      CustomLog: False
 | 
					 | 
				
			||||||
      ServerAdmin: False
 | 
					 | 
				
			||||||
      ServerAlias: False
 | 
					 | 
				
			||||||
      Formula_Append: |
 | 
					      Formula_Append: |
 | 
				
			||||||
        Include /etc/apache2/snippets.d/ssl_themis.conf
 | 
					        {{ httpdcommon('BookStack') }}
 | 
				
			||||||
        AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
 | 
					        AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
 | 
				
			||||||
        SetOutputFilter DEFLATE
 | 
					        SetOutputFilter DEFLATE
 | 
				
			||||||
        <FilesMatch '\.php$'>
 | 
					
 | 
				
			||||||
          SetHandler 'proxy:unix:/run/php-fpm/BookStack.sock|fcgi://BookStack'
 | 
					    PrivateBin:
 | 
				
			||||||
        </FilesMatch>
 | 
					      interface: '{{ common['address'] }}'
 | 
				
			||||||
 | 
					      port: {{ common['port'] }}
 | 
				
			||||||
 | 
					      ServerName: privatebin{{ common['domain'] }}
 | 
				
			||||||
 | 
					      DocumentRoot: /srv/www/PrivateBin/public
 | 
				
			||||||
 | 
					      DirectoryIndex: index.php
 | 
				
			||||||
 | 
					      Directory:
 | 
				
			||||||
 | 
					        /srv/www/PrivateBin/:
 | 
				
			||||||
 | 
					          Options: false
 | 
				
			||||||
 | 
					          AllowOverride: None
 | 
				
			||||||
 | 
					          Require: all granted
 | 
				
			||||||
 | 
					      {{ httpdformulaexcess() }}
 | 
				
			||||||
 | 
					      Formula_Append: |
 | 
				
			||||||
 | 
					        {{ httpdcommon('PrivateBin') }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
profile:
 | 
					profile:
 | 
				
			||||||
  bookstack:
 | 
					  bookstack:
 | 
				
			||||||
@ -75,3 +99,51 @@ profile:
 | 
				
			|||||||
    saml2_group_attribute: groups
 | 
					    saml2_group_attribute: groups
 | 
				
			||||||
    saml2_remove_from_groups: true
 | 
					    saml2_remove_from_groups: true
 | 
				
			||||||
    queue_connection: database
 | 
					    queue_connection: database
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  privatebin:
 | 
				
			||||||
 | 
					    main:
 | 
				
			||||||
 | 
					      name: Bin
 | 
				
			||||||
 | 
					      fileupload: true
 | 
				
			||||||
 | 
					      syntaxhighlightingtheme: sons-of-obsidian
 | 
				
			||||||
 | 
					      sizelimit: 310485760
 | 
				
			||||||
 | 
					      notice: 'Note: Kittens will die if you abuse this service.'
 | 
				
			||||||
 | 
					      languageselection: true
 | 
				
			||||||
 | 
					      urlshortener: ${'secret_privatebin:main:urlshortener'}
 | 
				
			||||||
 | 
					      qrcode: true
 | 
				
			||||||
 | 
					    expire:
 | 
				
			||||||
 | 
					      default: 1week
 | 
				
			||||||
 | 
					    expire_options:
 | 
				
			||||||
 | 
					      5min: 300
 | 
				
			||||||
 | 
					      10min: 600
 | 
				
			||||||
 | 
					      1hour: 3600
 | 
				
			||||||
 | 
					      1day: 86400
 | 
				
			||||||
 | 
					      1week: 604800
 | 
				
			||||||
 | 
					      1month: 2592000
 | 
				
			||||||
 | 
					      1year: 31536000
 | 
				
			||||||
 | 
					      never: 0
 | 
				
			||||||
 | 
					    formatter_options:
 | 
				
			||||||
 | 
					      plaintext: Plain Text
 | 
				
			||||||
 | 
					      syntaxhighlighting: Source Code
 | 
				
			||||||
 | 
					      markdown: Markdown
 | 
				
			||||||
 | 
					    traffic:
 | 
				
			||||||
 | 
					      limit: 10
 | 
				
			||||||
 | 
					      header: X_FORWARDED_FOR
 | 
				
			||||||
 | 
					      dir: /var/lib/PrivateBin/limits
 | 
				
			||||||
 | 
					    purge:
 | 
				
			||||||
 | 
					      limit: 300
 | 
				
			||||||
 | 
					      batchsize: 10
 | 
				
			||||||
 | 
					      dir: /var/lib/PrivateBin/limits
 | 
				
			||||||
 | 
					    model:
 | 
				
			||||||
 | 
					      class: Database
 | 
				
			||||||
 | 
					    model_options:
 | 
				
			||||||
 | 
					      dsn: ${'secret_privatebin:model_options:dsn'}
 | 
				
			||||||
 | 
					      tbl: privatebin_
 | 
				
			||||||
 | 
					      usr: ${'secret_privatebin:model_options:usr'}
 | 
				
			||||||
 | 
					      pwd: ${'secret_privatebin:model_options:pwd'}
 | 
				
			||||||
 | 
					      opt[12]: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					firewalld:
 | 
				
			||||||
 | 
					  zones:
 | 
				
			||||||
 | 
					    backend:
 | 
				
			||||||
 | 
					      services:
 | 
				
			||||||
 | 
					        - https
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										55
									
								
								salt/profile/privatebin/init.sls
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								salt/profile/privatebin/init.sls
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,55 @@
 | 
				
			|||||||
 | 
					{%- set mypillar = salt['pillar.get']('profile:privatebin', {}) -%}
 | 
				
			||||||
 | 
					{%- set confdir = '/etc/PrivateBin' -%}
 | 
				
			||||||
 | 
					{%- set configfile = confdir ~ '/conf.php' -%}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					privatebin_packages:
 | 
				
			||||||
 | 
					  pkg.installed:
 | 
				
			||||||
 | 
					    - names:
 | 
				
			||||||
 | 
					      - PrivateBin-config-httpd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					privatebin_clean:
 | 
				
			||||||
 | 
					  file.directory:
 | 
				
			||||||
 | 
					    - name: {{ confdir }}
 | 
				
			||||||
 | 
					    - clean: True
 | 
				
			||||||
 | 
					    - onchanges:
 | 
				
			||||||
 | 
					      - pkg: privatebin_packages
 | 
				
			||||||
 | 
					    - require:
 | 
				
			||||||
 | 
					      - pkg: privatebin_packages
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{%- if mypillar | length %}
 | 
				
			||||||
 | 
					{{ configfile }}:
 | 
				
			||||||
 | 
					  ini.options_present:
 | 
				
			||||||
 | 
					    - separator: '='
 | 
				
			||||||
 | 
					    - strict: True
 | 
				
			||||||
 | 
					    - sections:
 | 
				
			||||||
 | 
					        {%- macro conf(section, options) %}
 | 
				
			||||||
 | 
					        {%- for option in options.keys() -%}
 | 
				
			||||||
 | 
					        {%- if mypillar[section][option] is string and mypillar[section][option].startswith('$') or mypillar[section][option] is number %}
 | 
				
			||||||
 | 
					        {%- set value = mypillar[section][option] -%}
 | 
				
			||||||
 | 
					        {%- else %}
 | 
				
			||||||
 | 
					        {%- set value = mypillar[section][option] | quote -%}
 | 
				
			||||||
 | 
					        {%- endif %}
 | 
				
			||||||
 | 
					          {{ option }}: {{ value }}
 | 
				
			||||||
 | 
					        {%- endfor -%}
 | 
				
			||||||
 | 
					        {%- endmacro %}
 | 
				
			||||||
 | 
					        {%- for section, options in mypillar.items() %}
 | 
				
			||||||
 | 
					        {{ section }}:
 | 
				
			||||||
 | 
					          {{ conf(section, options) }}
 | 
				
			||||||
 | 
					        {%- endfor %}
 | 
				
			||||||
 | 
					    - require:
 | 
				
			||||||
 | 
					      - pkg: privatebin_packages
 | 
				
			||||||
 | 
					    - watch:
 | 
				
			||||||
 | 
					      - file: privatebin_clean
 | 
				
			||||||
 | 
					    - watch_in:
 | 
				
			||||||
 | 
					      - file: privatebin_permissions
 | 
				
			||||||
 | 
					{%- endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					privatebin_permissions:
 | 
				
			||||||
 | 
					  file.managed:
 | 
				
			||||||
 | 
					    - mode: '0640'
 | 
				
			||||||
 | 
					    - user: wwwrun
 | 
				
			||||||
 | 
					    - group: privatebin
 | 
				
			||||||
 | 
					    - names:
 | 
				
			||||||
 | 
					      - {{ configfile }}
 | 
				
			||||||
 | 
					    - require:
 | 
				
			||||||
 | 
					      - pkg: privatebin_packages
 | 
				
			||||||
							
								
								
									
										4
									
								
								salt/role/privatebin.sls
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								salt/role/privatebin.sls
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					include:
 | 
				
			||||||
 | 
					  - role.web.apache-httpd
 | 
				
			||||||
 | 
					  - profile.privatebin
 | 
				
			||||||
 | 
					  - php.fpm
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user