]> cat aescling's git repositories - mastodon.git/blob - boxfile.yml
Change half-life of trend decay (#11774)
[mastodon.git] / boxfile.yml
1 run.config:
2 engine: ruby
3 engine.config:
4 runtime: ruby-2.5
5
6 extra_packages:
7 # basic servers:
8 - nginx
9 - nodejs
10
11 # for images:
12 - ImageMagick
13 - jemalloc
14
15 # for videos:
16 - ffmpeg3
17
18 # to prep the .env file:
19 - gettext-tools
20
21 # for node-gyp, used in the asset compilation process:
22 - python-2
23
24 # i18n:
25 - libidn
26
27 cache_dirs:
28 - node_modules
29
30 extra_path_dirs:
31 - node_modules/.bin
32
33 build_triggers:
34 - .ruby-version
35 - Gemfile
36 - Gemfile.lock
37 - package.json
38 - yarn.lock
39
40 extra_steps:
41 - cp .env.nanobox .env
42 - yarn
43
44 fs_watch: true
45
46
47 deploy.config:
48 extra_steps:
49 - NODE_ENV=production bundle exec rake assets:precompile
50 transform:
51 - "envsubst < /app/.env.nanobox > /app/.env.production"
52 - |-
53 if [ -z "$LOCAL_DOMAIN" ]
54 then
55 . /app/.env.production
56 export LOCAL_DOMAIN
57 fi
58 erb /app/nanobox/nginx-web.conf.erb > /app/nanobox/nginx-web.conf
59 erb /app/nanobox/nginx-stream.conf.erb > /app/nanobox/nginx-stream.conf
60 - touch /app/log/production.log
61 before_live:
62 web.web:
63 - bundle exec rake db:migrate:setup
64 - |-
65 if [[ "${ES_ENABLED}" != "false" ]]
66 then
67 bin/tootctl search deploy
68 fi
69 - bin/tootctl cache clear
70
71
72 web.web:
73 start:
74 nginx: nginx -c /app/nanobox/nginx-web.conf
75 rails: bundle exec puma -C /app/config/puma.rb
76
77 routes:
78 - '/'
79
80 writable_dirs:
81 - tmp
82
83 log_watch:
84 rails: 'log/production.log'
85
86 network_dirs:
87 data.storage:
88 - public/system
89
90
91 web.stream:
92 start:
93 nginx: nginx -c /app/nanobox/nginx-stream.conf
94 node: yarn run start
95
96 routes:
97 - '/api/v1/streaming*'
98 # Somehow we're getting requests for scheme://domain//api/v1/streaming* - match those, too
99 - '//api/v1/streaming*'
100
101 writable_dirs:
102 - tmp
103
104
105 worker.sidekiq:
106 start:
107 default: bundle exec sidekiq -c 5 -q default -L /app/log/sidekiq.log
108 mailers: bundle exec sidekiq -c 5 -q mailers -L /app/log/sidekiq.log
109 pull: bundle exec sidekiq -c 5 -q pull -L /app/log/sidekiq.log
110 push: bundle exec sidekiq -c 5 -q push -L /app/log/sidekiq.log
111
112 writable_dirs:
113 - tmp
114
115 log_watch:
116 rails: 'log/production.log'
117 sidekiq: 'log/sidekiq.log'
118
119 network_dirs:
120 data.storage:
121 - public/system
122
123
124 data.db:
125 image: nanobox/postgresql:9.6
126
127 cron:
128 - id: backup
129 schedule: '0 3 * * *'
130 command: |
131 PGPASSWORD=${DATA_DB_PASS} pg_dump -U ${DATA_DB_USER} -w -Fc -O gonano |
132 gzip |
133 curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/backup-${HOSTNAME}-$(date -u +%Y-%m-%d.%H-%M-%S).sql.gz -X POST -T - >&2
134 curl -k -s -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/ |
135 sed 's/,/\n/g' |
136 grep ${HOSTNAME} |
137 sort |
138 head -n-${BACKUP_COUNT:-1} |
139 sed 's/.*: \?"\(.*\)".*/\1/' |
140 while read file
141 do
142 curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/${file} -X DELETE
143 done
144
145
146 data.elastic:
147 image: nanobox/elasticsearch:5
148
149 cron:
150 - id: backup
151 schedule: '0 3 * * *'
152 command: |
153 id=$(cat /proc/sys/kernel/random/uuid)
154 curl -X PUT -H "Content-Type: application/json" "127.0.0.1:9200/_snapshot/${id}" -d "{\"type\": \"fs\",\"settings\": {\"location\": \"/var/tmp/${id}\",\"compress\": true}}"
155 curl -X PUT -H "Content-Type: application/json" "127.0.0.1:9200/_snapshot/${id}/backup?wait_for_completion=true&pretty"
156 tar -cz -C "/var/tmp/${id}" . |
157 curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/backup-${HOSTNAME}-$(date -u +%Y-%m-%d.%H-%M-%S).tgz -X POST -T - >&2
158 curl -X DELETE -H "Content-Type: application/json" "127.0.0.1:9200/_snapshot/${id}"
159 rm -rf "/var/tmp/${id}"
160 curl -k -s -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/ |
161 sed 's/,/\n/g' |
162 grep ${HOSTNAME} |
163 sort |
164 head -n-${BACKUP_COUNT:-1} |
165 sed 's/.*: \?"\(.*\)".*/\1/' |
166 while read file
167 do
168 curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/${file} -X DELETE
169 done
170
171
172 data.redis:
173 image: nanobox/redis:4.0
174
175 cron:
176 - id: backup
177 schedule: '0 3 * * *'
178 command: |
179 curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/backup-${HOSTNAME}-$(date -u +%Y-%m-%d.%H-%M-%S).rdb -X POST -T /data/var/db/redis/dump.rdb >&2
180 curl -k -s -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/ |
181 sed 's/,/\n/g' |
182 grep ${HOSTNAME} |
183 sort |
184 head -n-${BACKUP_COUNT:-1} |
185 sed 's/.*: \?"\(.*\)".*/\1/' |
186 while read file
187 do
188 curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/${file} -X DELETE
189 done
190
191
192 data.storage:
193 image: nanobox/unfs:0.9
194
195 cron:
196 - id: backup
197 schedule: '0 3 * * *'
198 command: |
199 tar cz -C /data/var/db/unfs/ . |
200 curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/backup-${HOSTNAME}-$(date -u +%Y-%m-%d.%H-%M-%S).tgz -X POST -T - >&2
201 curl -k -s -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/ |
202 sed 's/,/\n/g' |
203 grep ${HOSTNAME} |
204 sort |
205 head -n-${BACKUP_COUNT:-1} |
206 sed 's/.*: \?"\(.*\)".*/\1/' |
207 while read file
208 do
209 curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/${file} -X DELETE
210 done
This page took 0.075011 seconds and 4 git commands to generate.