Merge lp:charms/kusabax into lp:~shazzner/charms/precise/kusabax/trunk
- Precise Pangolin (12.04)
- trunk
- Merge into trunk
Status: | Work in progress |
---|---|
Proposed branch: | lp:charms/kusabax |
Merge into: | lp:~shazzner/charms/precise/kusabax/trunk |
Diff against target: |
578 lines (+455/-69) 7 files modified
README.md (+101/-0) config.yaml (+2/-2) icon.svg (+292/-0) metadata.yaml (+3/-0) readme (+0/-67) tests/00-setup (+5/-0) tests/99-autogen (+52/-0) |
To merge this branch: | bzr merge lp:charms/kusabax |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Clint Byrum (community) | Needs Resubmitting | ||
Benjamin Kerensa (community) | Needs Fixing | ||
Chris Hardee | Pending | ||
Review via email: mp+111982@code.launchpad.net |
Commit message
Description of the change
To be set as maintainer.
Clint Byrum (clint-fewbar) wrote : | # |
Aye, this merge is backwards (merging the official charm into yours) and yours does not seem to have a maintainer change.
Chris Hardee (shazzner) wrote : | # |
I have no idea what I'm doing :(
How do I add the maintainer change?
On Wed, Aug 8, 2012 at 1:55 PM, Clint Byrum <email address hidden> wrote:
> Review: Resubmit
>
> Aye, this merge is backwards (merging the official charm into yours) and yours does not seem to have a maintainer change.
> --
> https:/
> You proposed lp:charms/kusabax for merging.
--
Chris Hardee
10BitWorks
San Antonio Hackerspace
<email address hidden>
http://
- 9. By Charles Butler
-
[jose] Charmworld reports the following errors:
err: Charms need a maintainer (See RFC2822) - Name <email>
warn: Metadata is missing categories.
warn: No icon.svg file.
warn: config.yaml: option style-switcher does not have the keys: default
warn: config.yaml: option style-switcher has unknown keys: defualtFixed all of them. Set the charm author as maintainer as he showed the wish to be so, but didn't know how to fix it (see MP #111982, https:/
/code.launchpad .net/~charmers/ charms/ precise/ kusabax/ trunk/+ merge/111982). Also reformatted README to Markdown. - 10. By Jorge Castro
-
[aisrael] Add icon.
- 11. By Tim Van Steenburgh
-
[mbruzek] Added tests
Unmerged revisions
- 11. By Tim Van Steenburgh
-
[mbruzek] Added tests
- 10. By Jorge Castro
-
[aisrael] Add icon.
- 9. By Charles Butler
-
[jose] Charmworld reports the following errors:
err: Charms need a maintainer (See RFC2822) - Name <email>
warn: Metadata is missing categories.
warn: No icon.svg file.
warn: config.yaml: option style-switcher does not have the keys: default
warn: config.yaml: option style-switcher has unknown keys: defualtFixed all of them. Set the charm author as maintainer as he showed the wish to be so, but didn't know how to fix it (see MP #111982, https:/
/code.launchpad .net/~charmers/ charms/ precise/ kusabax/ trunk/+ merge/111982). Also reformatted README to Markdown.
Preview Diff
1 | === added file 'README.md' |
2 | --- README.md 1970-01-01 00:00:00 +0000 |
3 | +++ README.md 2014-11-19 18:57:15 +0000 |
4 | @@ -0,0 +1,101 @@ |
5 | +Kusaba X Juju Charm |
6 | +Copyright 2012 by Chris Hardee |
7 | + |
8 | +# About |
9 | +This charm is used to deploy a fully usable Kusaba X imageboard instance without |
10 | +any user interaction. This is a great charm to deploy if you want a |
11 | +2ch/4chan-style imageboard but are not up to speed on server installation etc. |
12 | + |
13 | +# Tutorial |
14 | +First make sure your environment is setup and you have juju installed, please |
15 | +see the [juju documentation](https://juju.ubuntu.com/docs/) for help on this. |
16 | + |
17 | +Edit the config.yaml, and change anything you'd like. Please be careful when |
18 | +changing the slogan value, as some characters will break the scripts. As of now, |
19 | +don't use pipes '|' or single-quotes. |
20 | + |
21 | +After juju has been configured, bootstrap it: |
22 | + |
23 | + juju bootstrap |
24 | + |
25 | +(if running a local instance you might need sudo privileges) |
26 | + |
27 | +Then deploy kusabax, you should do this from the root charm directory |
28 | +(ie charmroot/*distros*/kusabax) |
29 | + |
30 | + juju deploy --repository=. local:kusabax |
31 | + |
32 | +Then deploy mysql: |
33 | + |
34 | + juju deploy --repository=. local:mysql |
35 | + |
36 | +Check on the status: |
37 | + |
38 | + juju status |
39 | + |
40 | +When both nodes are up and running, add the relation: |
41 | + |
42 | + juju add-relation kusabax mysql |
43 | + |
44 | +Then expose kusabax: |
45 | + |
46 | + juju expose kusabax |
47 | + |
48 | +Check on that status until the relation is set and everything is running. |
49 | + |
50 | +Grab the public address from the status output and paste it into your browser. |
51 | +If everything went ok, then you should see the basic kusaba x imageboard ready |
52 | +to go. |
53 | + |
54 | +## We're not done yet though! |
55 | + |
56 | +Navigate to manage.php by appending it to the public address |
57 | +(e.g. http://23.42.52.232/manage.php). |
58 | + |
59 | +Login with username: admin password: admin |
60 | + |
61 | + 1. On the left side, under Site Administration, click on Staff. |
62 | + 2. Add a new administrator by giving a username, password, leaving the type to |
63 | + administrator, and clicking Add Staff Member. |
64 | + 3. Log off, then renavigate to the manage.php site and log in with the new |
65 | + user. If everything went ok, then Delete the old default Admin user. |
66 | + |
67 | +You are now ready! |
68 | + |
69 | +Remember to add a board under Boards Administration, then go to Edit Section and |
70 | +Add Section, then finally under Board options select the new board you just made |
71 | +and change the Section drop-down to the new section. |
72 | + |
73 | +When you navigate to the home page, you should see your new board and should be |
74 | +able to post. Repeat for other boards/sections. |
75 | + |
76 | +## Known limitations and issues |
77 | + |
78 | +This charm will checkout the latest stable release from |
79 | +http://kusabax.cultnet.net/svn/ and installs it to the root /var/www directory. |
80 | + |
81 | +Currently the script uses the current hostname for all configuration, you might |
82 | +get some errors if you want to move to a proper domain (e.g. example.com). |
83 | + |
84 | +Keep in mind imageboards like these are notorious for cross-site scripting |
85 | +attacks, so keep note of current vulnerabilities from the kusabax home page. |
86 | + |
87 | +# Support |
88 | + |
89 | +For support on kusabax itself, checked out the |
90 | +[support board](http://kusabax.cultnet.net/sup/) and the |
91 | +[wiki](http://kusabax.cultnet.net/wiki/). |
92 | + |
93 | +# Contact Information |
94 | + |
95 | +Maintainer: Chris Hardee <shazzner@gmail.com> |
96 | +Report bugs at: https://bugs.launchpad.net/charms |
97 | + |
98 | +# TODOs |
99 | + |
100 | + * More config options |
101 | + * Add postgresql support |
102 | + * Double-check what exactly needs permissions to avoid www-root chmod 777 |
103 | + * Add a way to change db relations |
104 | + * Would probably be a good candidate for |
105 | + [apparmor support](https://juju.ubuntu.com/AppArmor) |
106 | |
107 | === modified file 'config.yaml' |
108 | --- config.yaml 2012-04-06 00:57:35 +0000 |
109 | +++ config.yaml 2014-11-19 18:57:15 +0000 |
110 | @@ -2,7 +2,7 @@ |
111 | domain-name: |
112 | default: 'blank' |
113 | type: string |
114 | - descript: Website domain name, ie imageboard.com or overninethousand.net. If left 'blank', the ip address will be used. Can be changed after deployment |
115 | + description: Website domain name, ie imageboard.com or overninethousand.net. If left 'blank', the ip address will be used. Can be changed after deployment |
116 | board-name: |
117 | default: 'juju kusaba x' |
118 | type: string |
119 | @@ -12,6 +12,6 @@ |
120 | type: string |
121 | description: Site slogan, set to nothing to disable its display |
122 | style-switcher: |
123 | - defualt: 'true' |
124 | + default: true |
125 | type: boolean |
126 | description: If true, will allow users to change style |
127 | |
128 | === added file 'icon.svg' |
129 | --- icon.svg 1970-01-01 00:00:00 +0000 |
130 | +++ icon.svg 2014-11-19 18:57:15 +0000 |
131 | @@ -0,0 +1,292 @@ |
132 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
133 | +<!-- Created with Inkscape (http://www.inkscape.org/) --> |
134 | + |
135 | +<svg |
136 | + xmlns:dc="http://purl.org/dc/elements/1.1/" |
137 | + xmlns:cc="http://creativecommons.org/ns#" |
138 | + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
139 | + xmlns:svg="http://www.w3.org/2000/svg" |
140 | + xmlns="http://www.w3.org/2000/svg" |
141 | + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
142 | + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
143 | + width="96" |
144 | + height="96" |
145 | + id="svg6517" |
146 | + version="1.1" |
147 | + inkscape:version="0.48.4 r9939" |
148 | + sodipodi:docname="juju-icon-placeholder-k.svg"> |
149 | + <defs |
150 | + id="defs6519"> |
151 | + <linearGradient |
152 | + id="Background"> |
153 | + <stop |
154 | + id="stop4178" |
155 | + offset="0" |
156 | + style="stop-color:#b8b8b8;stop-opacity:1" /> |
157 | + <stop |
158 | + id="stop4180" |
159 | + offset="1" |
160 | + style="stop-color:#c9c9c9;stop-opacity:1" /> |
161 | + </linearGradient> |
162 | + <filter |
163 | + style="color-interpolation-filters:sRGB;" |
164 | + inkscape:label="Inner Shadow" |
165 | + id="filter1121"> |
166 | + <feFlood |
167 | + flood-opacity="0.59999999999999998" |
168 | + flood-color="rgb(0,0,0)" |
169 | + result="flood" |
170 | + id="feFlood1123" /> |
171 | + <feComposite |
172 | + in="flood" |
173 | + in2="SourceGraphic" |
174 | + operator="out" |
175 | + result="composite1" |
176 | + id="feComposite1125" /> |
177 | + <feGaussianBlur |
178 | + in="composite1" |
179 | + stdDeviation="1" |
180 | + result="blur" |
181 | + id="feGaussianBlur1127" /> |
182 | + <feOffset |
183 | + dx="0" |
184 | + dy="2" |
185 | + result="offset" |
186 | + id="feOffset1129" /> |
187 | + <feComposite |
188 | + in="offset" |
189 | + in2="SourceGraphic" |
190 | + operator="atop" |
191 | + result="composite2" |
192 | + id="feComposite1131" /> |
193 | + </filter> |
194 | + <filter |
195 | + style="color-interpolation-filters:sRGB;" |
196 | + inkscape:label="Drop Shadow" |
197 | + id="filter950"> |
198 | + <feFlood |
199 | + flood-opacity="0.25" |
200 | + flood-color="rgb(0,0,0)" |
201 | + result="flood" |
202 | + id="feFlood952" /> |
203 | + <feComposite |
204 | + in="flood" |
205 | + in2="SourceGraphic" |
206 | + operator="in" |
207 | + result="composite1" |
208 | + id="feComposite954" /> |
209 | + <feGaussianBlur |
210 | + in="composite1" |
211 | + stdDeviation="1" |
212 | + result="blur" |
213 | + id="feGaussianBlur956" /> |
214 | + <feOffset |
215 | + dx="0" |
216 | + dy="1" |
217 | + result="offset" |
218 | + id="feOffset958" /> |
219 | + <feComposite |
220 | + in="SourceGraphic" |
221 | + in2="offset" |
222 | + operator="over" |
223 | + result="composite2" |
224 | + id="feComposite960" /> |
225 | + <feBlend |
226 | + blend="normal" |
227 | + id="feBlend3895" |
228 | + in2="composite2" /> |
229 | + </filter> |
230 | + <clipPath |
231 | + clipPathUnits="userSpaceOnUse" |
232 | + id="clipPath873"> |
233 | + <g |
234 | + transform="matrix(0,-0.66666667,0.66604479,0,-258.25992,677.00001)" |
235 | + id="g875" |
236 | + inkscape:label="Layer 1" |
237 | + style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline"> |
238 | + <path |
239 | + style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline" |
240 | + d="m 46.702703,898.22775 50.594594,0 C 138.16216,898.22775 144,904.06497 144,944.92583 l 0,50.73846 c 0,40.86071 -5.83784,46.69791 -46.702703,46.69791 l -50.594594,0 C 5.8378378,1042.3622 0,1036.525 0,995.66429 L 0,944.92583 C 0,904.06497 5.8378378,898.22775 46.702703,898.22775 Z" |
241 | + id="path877" |
242 | + inkscape:connector-curvature="0" |
243 | + sodipodi:nodetypes="sssssssss" /> |
244 | + </g> |
245 | + </clipPath> |
246 | + <filter |
247 | + inkscape:collect="always" |
248 | + id="filter891" |
249 | + inkscape:label="Badge Shadow"> |
250 | + <feGaussianBlur |
251 | + inkscape:collect="always" |
252 | + stdDeviation="0.71999962" |
253 | + id="feGaussianBlur893" /> |
254 | + </filter> |
255 | + </defs> |
256 | + <sodipodi:namedview |
257 | + id="base" |
258 | + pagecolor="#ffffff" |
259 | + bordercolor="#666666" |
260 | + borderopacity="1.0" |
261 | + inkscape:pageopacity="0.0" |
262 | + inkscape:pageshadow="2" |
263 | + inkscape:zoom="8.1490724" |
264 | + inkscape:cx="6.3116087" |
265 | + inkscape:cy="46.975739" |
266 | + inkscape:document-units="px" |
267 | + inkscape:current-layer="layer3" |
268 | + showgrid="true" |
269 | + fit-margin-top="0" |
270 | + fit-margin-left="0" |
271 | + fit-margin-right="0" |
272 | + fit-margin-bottom="0" |
273 | + inkscape:window-width="1849" |
274 | + inkscape:window-height="1218" |
275 | + inkscape:window-x="123" |
276 | + inkscape:window-y="68" |
277 | + inkscape:window-maximized="0" |
278 | + showborder="true" |
279 | + showguides="true" |
280 | + inkscape:guide-bbox="true" |
281 | + inkscape:showpageshadow="false"> |
282 | + <inkscape:grid |
283 | + type="xygrid" |
284 | + id="grid821" /> |
285 | + <sodipodi:guide |
286 | + orientation="1,0" |
287 | + position="16,48" |
288 | + id="guide823" /> |
289 | + <sodipodi:guide |
290 | + orientation="0,1" |
291 | + position="64,80" |
292 | + id="guide825" /> |
293 | + <sodipodi:guide |
294 | + orientation="1,0" |
295 | + position="80,40" |
296 | + id="guide827" /> |
297 | + <sodipodi:guide |
298 | + orientation="0,1" |
299 | + position="64,16" |
300 | + id="guide829" /> |
301 | + </sodipodi:namedview> |
302 | + <metadata |
303 | + id="metadata6522"> |
304 | + <rdf:RDF> |
305 | + <cc:Work |
306 | + rdf:about=""> |
307 | + <dc:format>image/svg+xml</dc:format> |
308 | + <dc:type |
309 | + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
310 | + <dc:title /> |
311 | + </cc:Work> |
312 | + </rdf:RDF> |
313 | + </metadata> |
314 | + <g |
315 | + inkscape:label="BACKGROUND" |
316 | + inkscape:groupmode="layer" |
317 | + id="layer1" |
318 | + transform="translate(268,-635.29076)" |
319 | + style="display:inline"> |
320 | + <path |
321 | + style="fill:#333333;fill-opacity:0.93333334000000001;stroke:none;display:inline;filter:url(#filter1121);opacity:0.7" |
322 | + d="m -268,700.15563 0,-33.72973 c 0,-27.24324 3.88785,-31.13513 31.10302,-31.13513 l 33.79408,0 c 27.21507,0 31.1029,3.89189 31.1029,31.13513 l 0,33.72973 c 0,27.24325 -3.88783,31.13514 -31.1029,31.13514 l -33.79408,0 C -264.11215,731.29077 -268,727.39888 -268,700.15563 Z" |
323 | + id="path6455" |
324 | + inkscape:connector-curvature="0" |
325 | + sodipodi:nodetypes="sssssssss" /> |
326 | + </g> |
327 | + <g |
328 | + inkscape:groupmode="layer" |
329 | + id="layer3" |
330 | + inkscape:label="PLACEHOLDER LETTER" |
331 | + style="display:inline"> |
332 | + <text |
333 | + xml:space="preserve" |
334 | + style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter950);font-family:Sans" |
335 | + x="30.724001" |
336 | + y="69.1772" |
337 | + id="text3891" |
338 | + sodipodi:linespacing="125%"><tspan |
339 | + sodipodi:role="line" |
340 | + id="tspan3893" |
341 | + x="30.724001" |
342 | + y="69.1772" |
343 | + style="font-size:56px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;fill:#ffffff;fill-opacity:1;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Medium">k</tspan></text> |
344 | + <rect |
345 | + style="opacity:0.7;fill:none;stroke:none" |
346 | + id="rect3021" |
347 | + width="64" |
348 | + height="64" |
349 | + x="16" |
350 | + y="15.449201" /> |
351 | + </g> |
352 | + <g |
353 | + inkscape:groupmode="layer" |
354 | + id="layer2" |
355 | + inkscape:label="BADGE" |
356 | + style="display:none" |
357 | + sodipodi:insensitive="true"> |
358 | + <g |
359 | + style="display:inline" |
360 | + transform="translate(-340.00001,-581)" |
361 | + id="g4394" |
362 | + clip-path="none"> |
363 | + <g |
364 | + id="g855"> |
365 | + <g |
366 | + inkscape:groupmode="maskhelper" |
367 | + id="g870" |
368 | + clip-path="url(#clipPath873)" |
369 | + style="opacity:0.6;filter:url(#filter891)"> |
370 | + <path |
371 | + transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-237.54282)" |
372 | + d="m 264,552.36218 c 0,6.62742 -5.37258,12 -12,12 -6.62742,0 -12,-5.37258 -12,-12 0,-6.62741 5.37258,-12 12,-12 6.62742,0 12,5.37259 12,12 z" |
373 | + sodipodi:ry="12" |
374 | + sodipodi:rx="12" |
375 | + sodipodi:cy="552.36218" |
376 | + sodipodi:cx="252" |
377 | + id="path844" |
378 | + style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
379 | + sodipodi:type="arc" /> |
380 | + </g> |
381 | + <g |
382 | + id="g862"> |
383 | + <path |
384 | + sodipodi:type="arc" |
385 | + style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
386 | + id="path4398" |
387 | + sodipodi:cx="252" |
388 | + sodipodi:cy="552.36218" |
389 | + sodipodi:rx="12" |
390 | + sodipodi:ry="12" |
391 | + d="m 264,552.36218 c 0,6.62742 -5.37258,12 -12,12 -6.62742,0 -12,-5.37258 -12,-12 0,-6.62741 5.37258,-12 12,-12 6.62742,0 12,5.37259 12,12 z" |
392 | + transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-238.54282)" /> |
393 | + <path |
394 | + transform="matrix(1.25,0,0,1.25,33,-100.45273)" |
395 | + d="m 264,552.36218 c 0,6.62742 -5.37258,12 -12,12 -6.62742,0 -12,-5.37258 -12,-12 0,-6.62741 5.37258,-12 12,-12 6.62742,0 12,5.37259 12,12 z" |
396 | + sodipodi:ry="12" |
397 | + sodipodi:rx="12" |
398 | + sodipodi:cy="552.36218" |
399 | + sodipodi:cx="252" |
400 | + id="path4400" |
401 | + style="color:#000000;fill:#dd4814;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
402 | + sodipodi:type="arc" /> |
403 | + <path |
404 | + sodipodi:type="star" |
405 | + style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
406 | + id="path4459" |
407 | + sodipodi:sides="5" |
408 | + sodipodi:cx="666.19574" |
409 | + sodipodi:cy="589.50385" |
410 | + sodipodi:r1="7.2431178" |
411 | + sodipodi:r2="4.3458705" |
412 | + sodipodi:arg1="1.0471976" |
413 | + sodipodi:arg2="1.6755161" |
414 | + inkscape:flatsided="false" |
415 | + inkscape:rounded="0.1" |
416 | + inkscape:randomized="0" |
417 | + d="m 669.8173,595.77657 c -0.39132,0.22593 -3.62645,-1.90343 -4.07583,-1.95066 -0.44938,-0.0472 -4.05653,1.36297 -4.39232,1.06062 -0.3358,-0.30235 0.68963,-4.03715 0.59569,-4.47913 -0.0939,-0.44198 -2.5498,-3.43681 -2.36602,-3.8496 0.18379,-0.41279 4.05267,-0.59166 4.44398,-0.81759 0.39132,-0.22593 2.48067,-3.48704 2.93005,-3.4398 0.44938,0.0472 1.81505,3.67147 2.15084,3.97382 0.3358,0.30236 4.08294,1.2817 4.17689,1.72369 0.0939,0.44198 -2.9309,2.86076 -3.11469,3.27355 -0.18379,0.41279 0.0427,4.27917 -0.34859,4.5051 z" |
418 | + transform="matrix(1.511423,-0.16366377,0.16366377,1.511423,-755.37346,-191.93651)" /> |
419 | + </g> |
420 | + </g> |
421 | + </g> |
422 | + </g> |
423 | +</svg> |
424 | |
425 | === modified file 'metadata.yaml' |
426 | --- metadata.yaml 2012-03-27 18:53:41 +0000 |
427 | +++ metadata.yaml 2014-11-19 18:57:15 +0000 |
428 | @@ -1,7 +1,10 @@ |
429 | name: kusabax |
430 | +maintainer: Chris Hardee <shazzner@gmail.com> |
431 | summary: "Kusaba X is a continuation of the Imageboard software Kusaba" |
432 | description: | |
433 | Deploys KusabaX |
434 | +categories: |
435 | + - applications |
436 | requires: |
437 | db: |
438 | interface: mysql |
439 | |
440 | === removed file 'readme' |
441 | --- readme 2012-04-02 08:52:39 +0000 |
442 | +++ readme 1970-01-01 00:00:00 +0000 |
443 | @@ -1,67 +0,0 @@ |
444 | -Kusaba X Juju Charm |
445 | -Copyright 2012 by Chris Hardee |
446 | - |
447 | -About: |
448 | -This charm is used to deploy a fully usable Kusaba X imageboard instance without any user interaction. This is a great charm to deploy if you want a 2ch/4chan-style imageboard but are not up to speed on server installation etc. |
449 | - |
450 | -Tutorial: |
451 | -First make sure your environment is setup and you have juju installed, please see the juju documentation for help on this: |
452 | -https://juju.ubuntu.com/docs/index.html |
453 | - |
454 | -Edit the config.yaml, and change anything you'd like. Please be careful when changing the slogan value, as some characters will break the scripts. As of now, don't use pipes '|' or single-quotes. |
455 | - |
456 | -After juju has been configured, bootstrap it: |
457 | - juju bootstrap |
458 | -(if running a local instance you might need sudo privileges) |
459 | - |
460 | -Then deploy kusabax, you should do this from the root charm directory (ie charmroot/*distros*/kusabax) |
461 | - juju deploy --repository=. local:kusabax |
462 | -Then deploy mysql: |
463 | - juju deploy --repository=. local:mysql |
464 | - |
465 | -Check on the status: |
466 | - juju status |
467 | -When both nodes are up and running, add the relation: |
468 | - juju add-relation kusabax mysql |
469 | -Then expose kusabax: |
470 | - juju expose kusabax |
471 | - |
472 | -Check on that status until the relation is set and everything is running. |
473 | - |
474 | -Grab the public address from the status output and paste it into your browser. If everything went ok, then you should see the basic kusaba x imageboard ready to go. |
475 | - |
476 | -We're not done yet though! |
477 | - |
478 | -Naviagate to manage.php by appending it to the public address (ie http://23.42.52.232/manage.php). |
479 | - |
480 | -Login with username: admin password: admin |
481 | - |
482 | -On the left side, under Site Administration, click on Staff |
483 | -Add a new administrator by giving a username, password, leaving the type to administrator, and clicking Add Staff Member. |
484 | -Log off, then renavigate to the manage.php site and log in with the new user. If everything went ok, then Delete the old default Admin user. |
485 | - |
486 | -You are now ready! |
487 | - |
488 | -Remember to add a board under Boards Administration, then go to Edit Section and Add Section, then finally under Board options select the new board you just made and change the Section drop-down to the new section. |
489 | -When you navigate to the home page, you should see your new board and should be able to post. Repeat for other boards/sections. |
490 | - |
491 | -Notes: |
492 | -This charm will checkout the latest stable release from http://kusabax.cultnet.net/svn/ and install it to the root /var/www directory. |
493 | -Currently the script uses the current hostname for all configuration, you might get some errors if you want to move to a proper domain ie. example.com. |
494 | -Keep in mind imageboards like these are notorious for cross-site scripting attacks, so keep note of current vulnerabilities from the kusabax home page. |
495 | - |
496 | -Support: |
497 | -For support on kusabax itself, checked out the support board: |
498 | -http://kusabax.cultnet.net/sup/ |
499 | -and the wiki: |
500 | -http://kusabax.cultnet.net/wiki/ |
501 | - |
502 | -For issues with the charm itself, please contact me at: |
503 | -shazzner@gmail.com |
504 | - |
505 | -TODOs: |
506 | -More config options |
507 | -Add postgresql support |
508 | -Double-check what exactly needs permissions to avoid www-root chmod 777 |
509 | -Add a way to change db relations |
510 | -Would probably be a good candidate for apparmor support: https://juju.ubuntu.com/AppArmor |
511 | |
512 | === added directory 'tests' |
513 | === added file 'tests/00-setup' |
514 | --- tests/00-setup 1970-01-01 00:00:00 +0000 |
515 | +++ tests/00-setup 2014-11-19 18:57:15 +0000 |
516 | @@ -0,0 +1,5 @@ |
517 | +#!/bin/bash |
518 | + |
519 | +sudo add-apt-repository ppa:juju/stable -y |
520 | +sudo apt-get update |
521 | +sudo apt-get install amulet python3-requests -y |
522 | |
523 | === added file 'tests/99-autogen' |
524 | --- tests/99-autogen 1970-01-01 00:00:00 +0000 |
525 | +++ tests/99-autogen 2014-11-19 18:57:15 +0000 |
526 | @@ -0,0 +1,52 @@ |
527 | +#!/usr/bin/env python3 |
528 | + |
529 | +import amulet |
530 | +import requests |
531 | +import unittest |
532 | + |
533 | + |
534 | +class TestDeployment(unittest.TestCase): |
535 | + @classmethod |
536 | + def setUpClass(cls): |
537 | + cls.deployment = amulet.Deployment(series='precise') |
538 | + |
539 | + cls.deployment.add('kusabax') |
540 | + cls.deployment.add('mysql') |
541 | + cls.deployment.relate('kusabax:db', 'mysql:db') |
542 | + cls.deployment.expose('kusabax') |
543 | + |
544 | + try: |
545 | + cls.deployment.setup(timeout=900) |
546 | + cls.deployment.sentry.wait() |
547 | + except amulet.helpers.TimeoutError: |
548 | + amulet.raise_status(amulet.SKIP, msg="Environment wasn't stood up in time") |
549 | + except: |
550 | + raise |
551 | + |
552 | + def test_case(self): |
553 | + # Now you can use self.deployment.sentry.unit[UNIT] to address each of |
554 | + # the units and perform more in-depth steps. You can also reference |
555 | + # the first unit as self.unit. |
556 | + # There are three test statuses that can be triggered with |
557 | + # amulet.raise_status(): |
558 | + # - amulet.PASS |
559 | + # - amulet.FAIL |
560 | + # - amulet.SKIP |
561 | + # Each unit has the following methods: |
562 | + # - .info - An array of the information of that unit from Juju |
563 | + # - .file(PATH) - Get the details of a file on that unit |
564 | + # - .file_contents(PATH) - Get plain text output of PATH file from that unit |
565 | + # - .directory(PATH) - Get details of directory |
566 | + # - .directory_contents(PATH) - List files and folders in PATH on that unit |
567 | + # - .relation(relation, service:rel) - Get relation data from return service |
568 | + # add tests here to confirm service is up and working properly |
569 | + # For example, to confirm that it has a functioning HTTP server: |
570 | + # page = requests.get('http://{}'.format(self.unit.info['public-address'])) |
571 | + # page.raise_for_status() |
572 | + # More information on writing Amulet tests can be found at: |
573 | + # https://juju.ubuntu.com/docs/tools-amulet.html |
574 | + pass |
575 | + |
576 | + |
577 | +if __name__ == '__main__': |
578 | + unittest.main() |
Can you double check to ensure you pushed because there are no changes in the diff.