avm-eac_redmine_base0 0.1.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 96cb101bbbfb3397e390b6120b126b5aab0f04abc3e3ebced5518162bd32f5da
4
- data.tar.gz: 53cca61ba5273402ea1e1de68c1fdb1c797cb54e859046477ef7bcd1a27ede07
3
+ metadata.gz: 9daf2df205e9d703cf516938c642d525084d35fb3437b22229d2bf55718dbd8c
4
+ data.tar.gz: 8b4ec0d4fc6906e204e6c599801097e29be8b71c97d54281d1f43f22279fbc24
5
5
  SHA512:
6
- metadata.gz: 0f8b7648564e59e10cc2d02b21f712298dcc6ab766a3e075b50183c3cc8adb17b46fa2b6ac71dcad0df58c244b6ec7ab7f968f95b06154928cd2632c541d89fe
7
- data.tar.gz: 83007b7a9f97b31a3b1670beb29879baa3f9cbba693289ae15502d9f0a3d96380fba7cd570becbe26e985112d4d4f2ba6859a91f309384da68d9c25d15b006b9
6
+ metadata.gz: 933a04ed3fe842bb9ac5f90ecbfc52c618d8b3f0819bfd2dadf41fe22d3b4c1a70129d0a0258952d89c966e0cde3f38b933630687867ca85e114461ccb5d653c
7
+ data.tar.gz: 55bf5505eb04d117eba59b1e6d51adc57113a70e7fe254e2fac5eec30ba2f561c48724bada6e2b6d64ff3dda2d5c6556b847e48f6cd45c74ee1c1323536832f9
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'avm/eac_redmine_base0/core_update'
4
- require 'avm/cached_download'
5
4
  require 'avm/sync'
5
+ require 'eac_fs/cached_download'
6
6
  require 'eac_ruby_utils/core_ext'
7
7
 
8
8
  module Avm
@@ -79,8 +79,9 @@ module Avm
79
79
  .add_exclude('/*').add_includes(*target_files_to_remove).move_mode(true).run
80
80
  end
81
81
 
82
+ # @return [EacFs::CachedDownload]
82
83
  def source_package_uncached
83
- ::Avm::CachedDownload.new(url, ::Avm.fs_cache.child('eac_redmine_base0', 'core_update'))
84
+ ::EacFs::CachedDownload.new(url, fs_cache)
84
85
  end
85
86
 
86
87
  def validate_empty_dir
@@ -1,8 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'eac_ruby_utils/core_ext'
4
+ require 'avm/eac_ubuntu_base0/instances/base'
4
5
  require 'avm/instances/docker_image'
5
- require 'avm/eac_redmine_base0/patches/object/template'
6
+ require 'eac_templates/core_ext'
6
7
 
7
8
  module Avm
8
9
  module EacRedmineBase0
@@ -10,30 +11,56 @@ module Avm
10
11
  class DockerImage < ::Avm::Instances::DockerImage
11
12
  enable_simple_cache
12
13
 
14
+ BASE_IMAGE = 'ubuntu:20.04'
15
+ INSTALLER_TARGET_TASK = 'redmine_as_apache_base'
16
+ DATABASE_INTERNAL_HOSTNAME = 'localhost'
13
17
  REDMINE_SOURCE_HOST_SUBPATH = 'redmine_source'
14
18
 
15
19
  def avm_fs_cache_object_id
16
20
  instance.id
17
21
  end
18
22
 
23
+ def base_image
24
+ eac_ubuntu_base0_instance.docker_image.provide.id
25
+ end
26
+
27
+ def database_internal
28
+ instance.entry(::Avm::Instances::EntryKeys::DATABASE_HOSTNAME).value ==
29
+ DATABASE_INTERNAL_HOSTNAME
30
+ end
31
+
32
+ def installer_target_task
33
+ INSTALLER_TARGET_TASK
34
+ end
35
+
19
36
  def redmine_user
20
- 'redmine'
37
+ eac_ubuntu_base0_instance.docker_image.user_name
21
38
  end
22
39
 
23
40
  def redmine_user_home
24
- "/home/#{redmine_user}"
41
+ eac_ubuntu_base0_instance.docker_image.user_home
25
42
  end
26
43
 
27
44
  def redmine_path
28
45
  "#{redmine_user_home}/redmine_app"
29
46
  end
30
47
 
48
+ def skip_database
49
+ ENV['SKIP_DATABASE']
50
+ end
51
+
31
52
  def start_path
32
53
  '/start.sh'
33
54
  end
34
55
 
35
56
  private
36
57
 
58
+ def eac_ubuntu_base0_instance
59
+ r = ::Avm::EacUbuntuBase0::Instances::Base.by_id(instance.id)
60
+ r.docker_image_options = instance.docker_image_options
61
+ r
62
+ end
63
+
37
64
  def git_repo_uncached
38
65
  ::EacGit::Local.new(instance.source_instance.fs_path)
39
66
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacRedmineBase0
5
- VERSION = '0.1.0'
5
+ VERSION = '0.3.1'
6
6
  end
7
7
  end
@@ -0,0 +1,27 @@
1
+ export postgresql_database='%%DATABASE.NAME%%'
2
+ export postgresql_database_test='%%DATABASE.NAME%%_test'
3
+ export postgresql_user='%%DATABASE.USERNAME%%'
4
+ export postgresql_password='%%DATABASE.PASSWORD%%'
5
+ export postgresql_version='%%POSTGRESQL.VERSION%%'
6
+ export rvm_ruby='ruby-%%RUBY.VERSION%%'
7
+ export redmine_git_hosting_ssh_key_name=redmine_git_hosting_id
8
+ if [ '%%WEB.SCHEME%%' == 'https' ]; then
9
+ export address_https='true'
10
+ else
11
+ export address_https='false'
12
+ fi
13
+ export address_host='%%WEB.AUTHORITY%%'
14
+ export address_path='%%WEB.PATH%%'
15
+ export git_repositories_hierarchical_organisation=false
16
+
17
+ # Mail settings
18
+ export smtp_server='%%MAILER.SMTP.ADDRESS%%'
19
+ export smtp_port='%%MAILER.SMTP.PORT%%'
20
+ export smtp_domain='%%MAILER.SMTP.DOMAIN%%'
21
+ export smtp_tls='%%MAILER_SMTP_TLS%%'
22
+ export smtp_enable_starttls_auto='%%MAILER_SMTP_STARTTLS_AUTO%%'
23
+ export smtp_openssl_verify_mode='%%MAILER_SMTP_OPENSSL_VERIFY_MODE%%'
24
+ export smtp_authentication='%%MAILER.SMTP.AUTHENTICATION%%'
25
+ export smtp_username='%%MAILER.SMTP.USERNAME%%'
26
+ export smtp_password='%%MAILER.SMTP.PASSWORD%%'
27
+ export mail_from='%%MAILER.FROM%%'
@@ -0,0 +1,8 @@
1
+ development:
2
+ secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
3
+
4
+ test:
5
+ secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
6
+
7
+ production:
8
+ secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
@@ -0,0 +1,43 @@
1
+ FROM '%%base_image%%'
2
+ USER root
3
+ RUN apt-get update -y
4
+ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y sudo tzdata git apt-utils
5
+ RUN ln -fs /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime
6
+ RUN dpkg-reconfigure --frontend noninteractive tzdata
7
+
8
+ # Redmine / Código-fonte
9
+ RUN echo '%%redmine_source_git_id%%' '%%redmine_user_home%%/redmine_source_git_id'
10
+ ADD '%%redmine_source_path%%' '%%redmine_path%%/'
11
+ RUN chown -R '%%redmine_user%%:%%redmine_user%%' '%%redmine_user_home%%'
12
+
13
+ # Redmine / Configuração de instalação
14
+ USER '%%redmine_user%%'
15
+ WORKDIR '%%redmine_user_home%%'
16
+ COPY install_settings.sh "%%redmine_path%%/config/install.sh"
17
+
18
+ # Redmine / Instalação
19
+ USER '%%redmine_user%%'
20
+ WORKDIR '%%redmine_user_home%%'
21
+ RUN SKIP_DATABASE='%%skip_database%%' \
22
+ '%%redmine_path%%/plugins/redmine_installer/installer/run.sh' '%%installer_target_task%%'
23
+
24
+ # Apache / Configuração do virtualhost
25
+ COPY apache_http_virtualhost.conf /etc/apache2/sites-available/redmine.conf
26
+ COPY apache_https_virtualhost.conf /etc/apache2/sites-available/redmine_ssl.conf
27
+ USER root
28
+ RUN a2ensite redmine
29
+ RUN a2ensite redmine_ssl
30
+ RUN a2dissite 000-default
31
+ RUN a2enmod ssl
32
+ RUN service apache2 restart
33
+
34
+ # Portas
35
+ EXPOSE 80/tcp 443/tcp 22/tcp
36
+
37
+ # Execução
38
+ COPY start.sh '%%start_path%%'
39
+ RUN /bin/chmod +x '%%start_path%%'
40
+ RUN /bin/chown '%%redmine_user%%:%%redmine_user%%' '%%start_path%%'
41
+ USER '%%redmine_user%%'
42
+ WORKDIR '%%redmine_user_home%%'
43
+ CMD '%%start_path%%'
@@ -0,0 +1,10 @@
1
+ <VirtualHost _default_:80>
2
+ DocumentRoot "%%redmine_path%%/public"
3
+ PassengerEnabled On
4
+
5
+ <Directory "%%redmine_path%%/public" >
6
+ Allow from all
7
+ Options -MultiViews
8
+ Require all granted
9
+ </Directory>
10
+ </VirtualHost>
@@ -0,0 +1,16 @@
1
+ <IfModule mod_ssl.c>
2
+ <VirtualHost _default_:443>
3
+ SSLEngine on
4
+ SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
5
+ SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
6
+
7
+ DocumentRoot "%%redmine_path%%/public"
8
+ PassengerEnabled On
9
+
10
+ <Directory "%%redmine_path%%/public" >
11
+ Allow from all
12
+ Options -MultiViews
13
+ Require all granted
14
+ </Directory>
15
+ </VirtualHost>
16
+ </IfModule>
@@ -0,0 +1,33 @@
1
+ # Database
2
+ export postgresql_internal='%%database_internal%%'
3
+ export postgresql_host='%%DATABASE.HOSTNAME%%'
4
+ export postgresql_port='%%DATABASE.PORT%%'
5
+ export postgresql_user='%%DATABASE.USERNAME%%'
6
+ export postgresql_password='%%DATABASE.PASSWORD%%'
7
+ export postgresql_database='%%DATABASE.NAME%%'
8
+ export postgresql_extra_settings='%%DATABASE.EXTRA%%'
9
+
10
+ # Git Hosting
11
+ export redmine_git_hosting_ssh_key_name=redmine_git_hosting_id
12
+ export git_repositories_hierarchical_organisation=false
13
+
14
+ # Web
15
+ if [ '%%WEB.SCHEME%%' == 'https' ]; then
16
+ export address_https='true'
17
+ else
18
+ export address_https='false'
19
+ fi
20
+ export address_host='%%WEB.AUTHORITY%%'
21
+ export address_path='%%WEB.PATH%%'
22
+
23
+ # Mail settings
24
+ export smtp_server='%%MAILER.SMTP.ADDRESS%%'
25
+ export smtp_port='%%MAILER.SMTP.PORT%%'
26
+ export smtp_domain='%%MAILER.SMTP.DOMAIN%%'
27
+ export smtp_tls='%%MAILER.SMTP.TLS%%'
28
+ export smtp_enable_starttls_auto='%%MAILER.SMTP.STARTTLS_AUTO%%'
29
+ export smtp_openssl_verify_mode='%%MAILER.SMTP.OPENSSL_VERIFY_MODE%%'
30
+ export smtp_authentication='%%MAILER.SMTP.AUTHENTICATION%%'
31
+ export smtp_username='%%MAILER.SMTP.USERNAME%%'
32
+ export smtp_password='%%MAILER.SMTP.PASSWORD%%'
33
+ export mail_from='%%MAILER.FROM%%'
@@ -0,0 +1,52 @@
1
+ #!/bin/bash
2
+
3
+ set -u
4
+ set -e
5
+
6
+ source '%%redmine_path%%/plugins/redmine_installer/installer/environment.sh'
7
+
8
+ function title() {
9
+ infom ">>>> $1 <<<<"
10
+ }
11
+
12
+ function redmine_install() {
13
+ title 'Installing Redmine...'
14
+ "$INSTALL_ROOT/run.sh" '%%installer_target_task%%'
15
+ }
16
+
17
+ function apache_start() {
18
+ title 'Restarting Apache HTTPD service...'
19
+ sudo service apache2 restart
20
+ }
21
+
22
+ function ssh_start() {
23
+ title 'Restarting SSH service...'
24
+ sudo service ssh restart
25
+ }
26
+
27
+ function postgresql_start() {
28
+ if bool_r "$SKIP_DATABASE"; then return 0; fi
29
+ if ! bool_r "$postgresql_internal"; then return 0; fi
30
+
31
+ title 'Restarting PostgresSQL service...'
32
+ sudo service postgresql restart
33
+ }
34
+
35
+ function request_http_interface() {
36
+ title 'Requesting web interface...'
37
+ wget 'http://localhost' &> /dev/null
38
+ }
39
+
40
+ function redmine_log() {
41
+ title 'Reading production log...'
42
+ LOG_FILE='%%redmine_path%%/log/production.log'
43
+ printf " * tail -f \"$LOG_FILE\":\n"
44
+ sudo tail -f "$LOG_FILE"
45
+ }
46
+
47
+ redmine_install
48
+ apache_start
49
+ ssh_start
50
+ postgresql_start
51
+ request_http_interface
52
+ redmine_log
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avm-eac_redmine_base0
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Put here the authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-08 00:00:00.000000000 Z
11
+ date: 2021-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm-eac_rails_base1
@@ -24,6 +24,48 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: avm-eac_ubuntu_base0
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: curb
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.9.10
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.9.10
55
+ - !ruby/object:Gem::Dependency
56
+ name: eac_fs
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.4'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.4'
27
69
  - !ruby/object:Gem::Dependency
28
70
  name: eac_ruby_utils
29
71
  requirement: !ruby/object:Gem::Requirement
@@ -44,14 +86,14 @@ dependencies:
44
86
  requirements:
45
87
  - - "~>"
46
88
  - !ruby/object:Gem::Version
47
- version: '0.2'
89
+ version: '0.4'
48
90
  type: :development
49
91
  prerelease: false
50
92
  version_requirements: !ruby/object:Gem::Requirement
51
93
  requirements:
52
94
  - - "~>"
53
95
  - !ruby/object:Gem::Version
54
- version: '0.2'
96
+ version: '0.4'
55
97
  description:
56
98
  email:
57
99
  executables: []
@@ -65,8 +107,14 @@ files:
65
107
  - lib/avm/eac_redmine_base0/deploy.rb
66
108
  - lib/avm/eac_redmine_base0/instance.rb
67
109
  - lib/avm/eac_redmine_base0/instances/docker_image.rb
68
- - lib/avm/eac_redmine_base0/patches/object/template.rb
69
110
  - lib/avm/eac_redmine_base0/version.rb
111
+ - template/avm/eac_redmine_base0/deploy/config/install.sh.template
112
+ - template/avm/eac_redmine_base0/deploy/config/secrets.yml
113
+ - template/avm/eac_redmine_base0/instances/docker_image/Dockerfile.template
114
+ - template/avm/eac_redmine_base0/instances/docker_image/apache_http_virtualhost.conf.template
115
+ - template/avm/eac_redmine_base0/instances/docker_image/apache_https_virtualhost.conf.template
116
+ - template/avm/eac_redmine_base0/instances/docker_image/install_settings.sh.template
117
+ - template/avm/eac_redmine_base0/instances/docker_image/start.sh.template
70
118
  homepage:
71
119
  licenses: []
72
120
  metadata: {}
@@ -85,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
85
133
  - !ruby/object:Gem::Version
86
134
  version: '0'
87
135
  requirements: []
88
- rubygems_version: 3.0.9
136
+ rubygems_version: 3.1.6
89
137
  signing_key:
90
138
  specification_version: 4
91
139
  summary: Put here de description.
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
- require 'eac_templates/patches/object/template'
5
-
6
- ::EacTemplates::Searcher.default.included_paths <<
7
- __dir__.to_pathname.expand_path.parent_n(5).join('template')