- ensure_packages(["go", "npm", "nodejs", "yarn"])
-
- file { [
- "${cf_home}/go/",
- "${cf_home}/go/src",
- "${cf_home}/go/src/immae.eu",
- "${cf_home}/go/src/immae.eu/Immae",
- "${cf_home}/go/src/immae.eu/Immae/Projets",
- "${cf_home}/go/src/immae.eu/Immae/Projets/Cryptomonnaies",
- "${cf_home}/go/src/immae.eu/Immae/Projets/Cryptomonnaies/Cryptoportfolio",
- $cf_front_app]:
- ensure => "directory",
- mode => "0700",
- owner => $cf_user,
- group => $cf_group,
- require => User[$cf_user],
- }
-
- archive { "${cf_home}/${front_version}.tar.gz":
- path => "${cf_home}/${front_version}.tar.gz",
- source => "https://git.immae.eu/releases/cryptoportfolio/front/front_${front_version}.tar.gz",
- checksum_type => "sha256",
- checksum => $front_sha256,
- cleanup => false,
- extract => true,
- user => "cryptoportfolio",
- extract_path => $cf_front_app,
- require => [User[$cf_user], File[$cf_front_app]],
- }
-
- file { "${cf_home}/front":
- ensure => "link",
- target => $cf_front_app,
- require => Archive["/opt/cryptoportfolio/${front_version}.tar.gz"]
- }
-
- exec { "go-get-dep":
- user => $cf_user,
- environment => ["HOME=${cf_home}"],
- creates => "${cf_home}/go/bin/dep",
- command => "/usr/bin/go get -u github.com/golang/dep/cmd/dep",
- require => User[$cf_user],
- }
-
- exec { "go-cryptoportfolio-dependencies":
- cwd => $cf_front_app,
- user => $cf_user,
- environment => ["HOME=${cf_home}"],
- creates => "${cf_front_app}/vendor",
- command => "${cf_home}/go/bin/dep ensure",
- require => [Exec["go-get-dep"], Archive["${cf_home}/${front_version}.tar.gz"]],
- }
-
- exec { "go-cryptoportfolio-app":
- cwd => $cf_front_app_api_workdir,
- user => $cf_user,
- environment => ["HOME=${cf_home}"],
- creates => $cf_front_app_api_bin,
- command => "/usr/bin/make build",
- require => Exec["go-cryptoportfolio-dependencies"],
- }
-
- file { "/etc/systemd/system/cryptoportfolio-app.service":
- mode => "0644",
- owner => "root",
- group => "root",
- content => template("role/cryptoportfolio/cryptoportfolio-app.service.erb"),
- } ~> exec { 'systemctl deamon-reload':
- command => '/usr/bin/systemctl daemon-reload',
- refreshonly => true
- }
-
- service { 'cryptoportfolio-app':
- enable => true,
- ensure => "running",
- require => [File["/etc/systemd/system/cryptoportfolio-app.service"]],
- }
-
- file { $cf_front_app_api_conf:
- owner => $cf_user,
- group => $cf_group,
- mode => "0600",
- content => template("role/cryptoportfolio/api_conf.toml.erb"),
- }
-
- file { $cf_front_app_static_conf:
- owner => $cf_user,
- group => $cf_group,
- mode => "0600",
- content => template("role/cryptoportfolio/static_conf.env.erb"),
- }
-
- exec { "web-cryptoportfolio-dependencies":
- cwd => "${cf_front_app}/cmd/web",
- environment => ["HOME=${cf_home}"],
- command => "/usr/bin/make install",
- creates => "${cf_front_app}/cmd/web/node_modules",
- require => [Package["npm"], Package["nodejs"], Package["yarn"]]
- }
-
- exec { "web-cryptoportfolio-build":
- cwd => "${cf_front_app}/cmd/web",
- environment => ["HOME=${cf_home}"],
- command => "/usr/bin/make static ENV=${cf_env}",
- creates => "${cf_front_app}/cmd/web/build/static",
- require => [File[$cf_front_app_static_conf], Exec["web-cryptoportfolio-dependencies"]]
- }