summaryrefslogtreecommitdiffstats
path: root/modules/gitea/manifests/init.pp
blob: df30bbb270a4bc9763fb472a31a31a6449b90555 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
class gitea {
  package { "gitea":
    ensure => installed;
  }

  user { "gitea":
    home => '/media/persistent/gitea',
    require => Package["gitea"];
  }

  service { "gitea":
    ensure => running,
    enable => true,
    require => [
      Package['gitea'],
      Systemd::Override['gitea'],
      Exec["/usr/bin/systemctl daemon-reload"],
      File['/media/persistent/gitea/custom/conf/app.ini'],
    ];
  }

  $secret_key = secret::value('gitea_secret_key')
  $smtp_password = secret::value('gitea_smtp_password')

  $gitea_username = secret::value('gitea_username')
  $gitea_password = secret::value('gitea_password')
  $gitea_email = secret::value('gitea_email')

  $github_username = secret::value('github_username')
  $github_password = secret::value('github_password')
  $github_api_token = secret::value('github_api_token')
  $github_oauth_key = secret::value('github_oauth_key')
  $github_oauth_secret = secret::value('github_oauth_secret')

  file {
    '/media/persistent/gitea':
      ensure => directory,
      owner => 'gitea',
      group => 'gitea';
    '/media/persistent/gitea/custom':
      ensure => directory,
      owner => 'gitea',
      group => 'gitea',
      require => [
        Package['gitea'],
        File['/media/persistent/gitea'],
      ];
    '/media/persistent/gitea/custom/conf':
      ensure => directory,
      owner => 'gitea',
      group => 'gitea',
      require => [
        Package['gitea'],
        File['/media/persistent/gitea/custom'],
      ];
    '/media/persistent/gitea/custom/conf/app.ini':
      content => template('gitea/app.ini'),
      owner => 'gitea',
      group => 'gitea',
      require => File['/media/persistent/gitea/custom/conf'];
    '/usr/local/bin/github2gitea':
      content => template('gitea/github2gitea'),
      mode => "0755";
    '/usr/local/bin/setup-gitea':
      content => template('gitea/setup-gitea'),
      mode => "0755";
  }

  systemd::override { "gitea":
    source => 'puppet:///modules/gitea/override.conf';
  }

  exec { "initialize gitea":
    provider => shell,
    command => 'su -p gitea /usr/local/bin/setup-gitea && systemctl restart gitea && /usr/local/bin/github2gitea',
    timeout => 3600,
    environment => [
      'USER=gitea',
      'HOME=/media/persistent/gitea',
      'GITEA_WORK_DIR=/media/persistent/gitea',
    ],
    onlyif => '
      test ! -s /media/persistent/gitea/gitea.sqlite || \
      test `sqlite3 /media/persistent/gitea/gitea.sqlite "select count(*) from user"` -eq 0
    ',
    require => [
      File['/usr/local/bin/setup-gitea'],
      File['/usr/local/bin/github2gitea'],
      Package['gitea'],
      Service['gitea'],
    ]
  }
}