Skip to content

Instantly share code, notes, and snippets.

@jankeromnes
Created March 26, 2018 13:44
Show Gist options
  • Save jankeromnes/a2bb71a2ba86a89bc9893437f1ff16cd to your computer and use it in GitHub Desktop.
Save jankeromnes/a2bb71a2ba86a89bc9893437f1ff16cd to your computer and use it in GitHub Desktop.
A redacted db.json file for https://janitor.technology with a project, admin user, 2 machines and 3 hosts.
{
"hostname": "janitor.technology",
"letsencrypt": {
"email": "[email protected]",
"key": "-----BEGIN RSA PRIVATE KEY-----\r\n[REDACTED]\r\n-----END RSA PRIVATE KEY-----\r\n"
},
"https": {
"ca": [
"-----BEGIN CERTIFICATE-----\r\n[REDACTED]\r\n-----END CERTIFICATE-----\r\n"
],
"crt": "-----BEGIN CERTIFICATE-----\r\n[REDACTED]\r\n-----END CERTIFICATE-----\r\n",
"key": "-----BEGIN RSA PRIVATE KEY-----\r\n[REDACTED]\r\n-----END RSA PRIVATE KEY-----\r\n"
},
"tls": {
"ca": {
"crt": "-----BEGIN CERTIFICATE-----\r\n[REDACTED]\r\n-----END CERTIFICATE-----\r\n",
"key": "-----BEGIN RSA PRIVATE KEY-----\r\n[REDACTED]\r\n-----END RSA PRIVATE KEY-----\r\n"
},
"client": {
"crt": "-----BEGIN CERTIFICATE-----\r\n[REDACTED]\r\n-----END CERTIFICATE-----\r\n",
"key": "-----BEGIN RSA PRIVATE KEY-----\r\n[REDACTED]\r\n-----END RSA PRIVATE KEY-----\r\n"
}
},
"projects": {
"firefox": {
"id": "firefox",
"name": "Firefox",
"icon": "/img/firefox.svg",
"docker": {
"image": "janx/firefox",
"path": "/home/user/firefox",
"build": "",
"update": "FROM janx/firefox\n\n# Upgrade all packages (temporarily regain administrator privileges).\nUSER root\nRUN apt-get update -q && apt-get upgrade -qy && rustup update\nUSER user\n\n# Update noVNC.\nRUN cd /home/user/.novnc/ && git pull --rebase origin master\n\n# Update Mozilla's moz-git-tools.\nRUN cd /home/user/moz-git-tools \\\n && git pull --rebase origin master \\\n && git submodule update\n\n# Update and rebuild Firefox's source code.\nRUN cd /home/user/firefox \\\n && git pull --rebase origin master \\\n && ./mach build\n\nUSER root",
"logs": "",
"ports": {
"22": {
"proxy": "none"
},
"8087": {
"proxy": "https"
},
"8088": {
"proxy": "https"
},
"8089": {
"proxy": "https"
},
"8090": {
"proxy": "https"
}
},
"host": "ovh1.janitor.technology"
},
"data": {
"updated": 1520857622965,
"update-time": [
[
1449071207566,
850010
],
[
1449071517858,
1160302
],
[
1449071527387,
1169831
],
[
1449223460792,
546414
],
[
1449229250694,
590495
],
[
1449847149554,
698272
],
[
1449847252765,
801483
],
[
1450382953450,
736753
],
[
1451916241317,
784310
],
[
1453467900719,
541612
],
[
1453995672109,
684622
],
[
1454098824243,
683907
],
[
1454253219520,
542666
],
[
1454340315970,
589636
],
[
1454432035071,
615194
],
[
1454576343312,
627670
],
[
1454697869537,
668683
],
[
1454744102508,
965905
],
[
1454925098725,
825973
],
[
1455054673106,
944325
],
[
1455130470397,
1385200
],
[
1455143646046,
263875
],
[
1455352635944,
706778
],
[
1455533644259,
1084880
],
[
1455621564522,
960105
],
[
1455817802601,
1224228
],
[
1455872960860,
287886
],
[
1456134781109,
702799
],
[
1456320585244,
892818
],
[
1456401265479,
922429
],
[
1456502084094,
955718
],
[
1456738898307,
694993
],
[
1456857020874,
741695
],
[
1457014652466,
772427
],
[
1457191329520,
1887012
],
[
1457284639268,
1184157
],
[
1457345300678,
559058
],
[
1457534438398,
1716435
],
[
1457616369180,
1467838
],
[
1457712194427,
507818
],
[
1457870215006,
1782674
],
[
1458214773663,
1271587
],
[
1458300659823,
905738
],
[
1458739245282,
1393152
],
[
1459207522502,
2656709
],
[
1459351018242,
2395681
],
[
1459427079487,
1885255
],
[
1459523774942,
851047
],
[
1459777187136,
1384268
],
[
1459933326685,
884482
],
[
1460290760945,
785945
],
[
1460469566309,
1088364
],
[
1460556530364,
1049513
],
[
1460640132281,
1182551
],
[
1460985686183,
2040492
],
[
1461143499323,
864368
],
[
1461247299725,
1634533
],
[
1461669583882,
1193353
],
[
1461719928651,
1129724
],
[
1461919167919,
1195039
],
[
1462006469728,
1593620
],
[
1462184482498,
1427703
],
[
1462447469524,
80474
],
[
1462678542671,
178468
],
[
1462956760893,
791622
],
[
1463309882708,
973602
],
[
1463749538575,
887160
],
[
1463924581335,
1368757
],
[
1464382974377,
1735799
],
[
1464810194176,
1677910
],
[
1464970111236,
1423923
],
[
1465223669609,
1374770
],
[
1465404762582,
1725885
],
[
1465837538072,
1998846
],
[
1466122144276,
4767834
],
[
1466599557663,
1228893
],
[
1468945161467,
3559615
],
[
1469182185979,
1437685
],
[
1470077427387,
2458928
],
[
1471193915799,
1914345
],
[
1472039227145,
2733288
],
[
1472224544592,
1694001
],
[
1473095752589,
1687226
],
[
1473369165023,
1446676
],
[
1474047638941,
2892428
],
[
1476288347948,
1536428
],
[
1487956865728,
349270
],
[
1488130934238,
1015916
],
[
1488205007418,
1077031
],
[
1488214886571,
1036841
],
[
1488302875074,
1901963
],
[
1488407704472,
494947
],
[
1488804377107,
1883230
],
[
1489079794563,
1907371
],
[
1489159343768,
1176429
],
[
1489503305330,
2087536
],
[
1489612200436,
2093770
],
[
1489764517940,
1954305
],
[
1490050162851,
2201266
],
[
1490263325109,
2097296
],
[
1490649368436,
555956
],
[
1490795438055,
688383
],
[
1491353402538,
2783981
],
[
1491826152835,
2210502
],
[
1492012063843,
2197392
],
[
1492211415858,
2267810
],
[
1492549556829,
1888480
],
[
1492944019086,
2391221
],
[
1493131422957,
1804220
],
[
1493471067248,
2127710
],
[
1493827383968,
2224974
],
[
1494150117828,
2177032
],
[
1494509387401,
1529722
],
[
1494833173916,
1978117
],
[
1494940971855,
2158286
],
[
1495039747645,
2722836
],
[
1495191567559,
2438331
],
[
1495468043005,
2438221
],
[
1496078225455,
2106227
],
[
1496166951323,
2725565
],
[
1496596843265,
1860841
],
[
1496740892965,
2077170
],
[
1496740983199,
2047425
],
[
1496867138736,
2079773
],
[
1497275335462,
2616720
],
[
1497483183750,
2570517
],
[
1497856080190,
2608300
],
[
1498055193658,
2682216
],
[
1498125768722,
506079
],
[
1498220606884,
1883489
],
[
1498398554505,
1900347
],
[
1498684656176,
2127851
],
[
1498899469452,
3175698
],
[
1499127628147,
3629831
],
[
1499717939820,
3698842
],
[
1500993680345,
1885008
],
[
1502014022026,
3023715
]
],
"spawn-time": [
[
1449845845561,
2129
],
[
1449847522724,
2590
],
[
1453303642727,
2235
],
[
1454004237309,
2328
],
[
1454105714730,
2779
],
[
1454108629992,
2007
],
[
1454164595684,
2066
],
[
1454257352340,
2382
],
[
1454430876517,
2423
],
[
1455060039070,
2659
],
[
1455131449317,
2588
],
[
1455272298407,
3154
],
[
1456308616009,
2953
],
[
1456324560485,
2673
],
[
1456325285053,
2578
],
[
1456738933396,
9011
],
[
1456920266559,
2757
],
[
1457638394214,
3403
],
[
1457643856528,
2585
],
[
1458694251426,
3021
],
[
1458997634821,
3757
],
[
1460555231368,
1872
],
[
1460582875183,
1872
],
[
1460641986946,
2106
],
[
1461145245195,
3332
],
[
1461677909416,
2023
],
[
1461965872511,
2293
],
[
1461967067518,
1929
],
[
1462009310803,
2144
],
[
1462009336038,
2525
],
[
1462009888020,
4953
],
[
1462009987059,
2867
],
[
1462010044524,
8523
],
[
1462010107607,
4985
],
[
1462010192043,
2042
],
[
1462010842013,
2396
],
[
1462010992777,
2092
],
[
1462011084343,
4764
],
[
1462011518112,
5069
],
[
1462012509826,
1827
],
[
1462013238813,
1891
],
[
1462013985546,
1895
],
[
1462020924229,
1968
],
[
1462024998428,
3500
],
[
1462025950887,
2007
],
[
1462036774194,
2099
],
[
1462448063206,
2018
],
[
1462484765305,
2105
],
[
1462787051199,
3668
],
[
1462801428026,
1965
],
[
1462870286486,
1814
],
[
1462870970976,
2025
],
[
1462886035873,
1921
],
[
1463825612968,
1815
],
[
1463835604082,
1825
],
[
1463932895601,
1778
],
[
1463979946024,
1745
],
[
1463996679173,
3977
],
[
1464109858706,
2067
],
[
1464132062558,
1816
],
[
1464283574904,
1805
],
[
1464807595073,
2366
],
[
1464970690884,
3484
],
[
1465234645234,
1976
],
[
1465308846560,
2183
],
[
1465400070998,
2192
],
[
1466154789138,
16094
],
[
1466492959860,
10897
],
[
1466518821251,
2468
],
[
1466588762171,
1740
],
[
1466599715851,
1739
],
[
1466603763180,
2964
],
[
1466627618603,
2331
],
[
1466660904267,
1762
],
[
1466660924411,
1804
],
[
1466685379035,
1782
],
[
1466687330279,
1892
],
[
1466693781209,
1864
],
[
1466802886875,
2024
],
[
1466838141290,
2057
],
[
1466841869150,
3223
],
[
1466903147547,
1893
],
[
1466940624763,
1842
],
[
1467053701679,
1844
],
[
1467250036890,
2138
],
[
1468970880960,
77243
],
[
1469104851098,
2147
],
[
1469182683964,
1875
],
[
1469774291512,
16282
],
[
1470743381077,
3507
],
[
1470854988726,
1990
],
[
1470936957296,
1999
],
[
1470937436306,
3307
],
[
1471188762880,
2032
],
[
1471711934836,
2132
],
[
1471746989719,
2228
],
[
1471829473660,
2041
],
[
1472143525490,
2256
],
[
1472227879284,
2291
],
[
1472228892427,
2093
],
[
1472250946492,
1942
],
[
1472264508081,
2119
],
[
1472265041601,
1941
],
[
1472265279276,
3352
],
[
1472265703755,
5588
],
[
1472265828092,
2304
],
[
1472266338276,
2151
],
[
1472266418444,
2032
],
[
1472266652332,
1990
],
[
1472267189212,
2176
],
[
1472592170375,
2092
],
[
1472751365487,
2138
],
[
1473184457735,
2030
],
[
1473343252730,
2092
],
[
1473345434122,
1999
],
[
1473347338365,
3474
],
[
1473349178140,
1974
],
[
1473422677538,
2097
],
[
1473663529608,
2165
],
[
1473960834086,
2077
],
[
1474394891271,
2341
],
[
1474551318570,
2243
],
[
1476283141054,
2550
],
[
1476288716132,
2085
],
[
1476289057646,
1988
],
[
1476357776141,
2130
],
[
1476358096322,
2154
],
[
1476723701307,
2117
],
[
1476956095157,
2182
],
[
1478035507098,
2563
],
[
1478035986820,
25566
],
[
1478112795692,
2368
],
[
1478174766044,
2248
],
[
1478174887578,
2225
],
[
1478182045421,
2171
],
[
1478183014351,
2081
],
[
1478201612994,
2367
],
[
1478249862389,
2209
],
[
1478267055442,
2194
],
[
1478355398407,
2093
],
[
1478977669996,
2454
],
[
1485492337755,
2435
],
[
1486205271921,
2286
],
[
1486476041889,
2286
],
[
1486480762700,
2319
],
[
1487176239107,
3094
],
[
1487858727542,
3268
],
[
1487863333878,
3265
],
[
1487874295368,
80595
],
[
1487959838957,
1463
],
[
1487960126425,
1516
],
[
1487964089831,
1499
],
[
1487965921465,
1528
],
[
1488014059991,
1494
],
[
1488028692469,
1696
],
[
1488038932887,
1488
],
[
1488073280231,
1591
],
[
1488131832175,
1477
],
[
1488132293409,
1611
],
[
1488133900045,
1545
],
[
1488194359767,
1589
],
[
1488209543342,
1565
],
[
1488219500603,
1595
],
[
1488232404836,
1713
],
[
1488299720048,
1666
],
[
1488463272884,
1619
],
[
1488492009950,
1587
],
[
1488493615007,
2244
],
[
1488493696017,
2110
],
[
1488563631413,
1987
],
[
1488923979674,
1563
],
[
1489085134007,
1591
],
[
1489253836651,
1625
],
[
1489761201416,
1637
],
[
1489762264868,
1630
],
[
1490054506872,
1609
],
[
1490128817309,
1636
],
[
1490365280225,
1651
],
[
1490572099950,
1653
],
[
1490628065844,
1677
],
[
1490818717321,
1626
],
[
1491239048476,
2315
],
[
1491263563657,
1652
],
[
1491299519120,
1771
],
[
1491344652129,
1589
],
[
1492073620935,
1866
],
[
1492511282843,
2289
],
[
1492545406783,
1661
],
[
1492545482040,
1574
],
[
1492545670930,
1617
],
[
1492547200173,
1672
],
[
1492547791755,
5142
],
[
1493594787668,
2340
],
[
1493597062118,
1579
],
[
1493825493497,
31771
],
[
1494861584954,
1655
],
[
1494947067212,
1692
],
[
1494948898226,
1591
],
[
1494953963419,
1816
],
[
1494960182002,
1617
],
[
1494967656063,
1663
],
[
1494968017316,
1683
],
[
1494968678253,
1622
],
[
1495044175878,
1721
],
[
1495122034624,
2169
],
[
1495129277964,
1715
],
[
1495136119595,
1773
],
[
1495136486899,
1688
],
[
1495196140204,
1654
],
[
1495197339482,
1673
],
[
1495637949477,
1813
],
[
1495880422547,
2678
],
[
1496361823696,
1691
],
[
1496362581196,
1619
],
[
1496399584780,
1681
],
[
1496619442774,
1660
],
[
1496622467325,
1591
],
[
1496650833504,
1679
],
[
1496654135652,
1623
],
[
1496654935217,
1987
],
[
1496670673796,
1639
],
[
1496742310537,
1797
],
[
1496856405791,
2707
],
[
1496929853604,
5232
],
[
1497241834381,
1859
],
[
1497283823428,
1800
],
[
1497458625627,
2111
],
[
1498127482627,
1622
],
[
1498210890494,
1663
],
[
1498211295019,
1728
],
[
1498215309191,
1544
],
[
1498582295492,
1780
],
[
1498587282478,
1841
],
[
1498588949545,
2131
],
[
1498598217670,
1689
],
[
1498674883530,
1921
],
[
1498755199096,
1756
],
[
1498756836049,
2101
],
[
1498762292747,
1647
],
[
1498762360220,
1612
],
[
1498763165932,
2973
],
[
1498768551467,
1862
],
[
1498768741696,
1738
],
[
1498770718246,
1931
],
[
1498771004639,
1705
],
[
1498841063436,
2234
],
[
1498842791669,
1743
],
[
1498845198322,
1835
],
[
1498865303917,
1756
],
[
1498930214698,
2495
],
[
1499186707596,
2737
],
[
1499255974702,
1715
],
[
1499465002868,
2198
],
[
1500976948472,
3301
],
[
1500988033720,
3028
],
[
1500994559491,
2427
],
[
1501050841209,
3043
],
[
1501093566169,
2031
],
[
1501144034785,
2390
],
[
1501770796873,
2010
],
[
1502399068963,
2079
],
[
1504107235994,
2057
],
[
1506011220879,
2325
],
[
1506082371303,
3552
],
[
1506198050027,
2211
],
[
1506254060305,
2275
],
[
1506257870711,
2354
],
[
1506294703804,
2264
],
[
1506338477733,
2725
],
[
1506511280161,
2040
],
[
1506776976132,
2226
],
[
1507668442485,
2056
],
[
1509000756514,
2256
],
[
1509221434320,
2331
],
[
1509563926366,
4086
],
[
1509564016496,
2081
],
[
1509732508864,
2381
],
[
1509807617912,
2379
],
[
1509823730507,
2035
],
[
1509823737480,
2635
],
[
1509958337241,
2099
],
[
1509972076361,
2081
],
[
1510015315341,
2345
],
[
1510085505448,
2029
],
[
1510569788794,
2078
],
[
1510578278244,
2297
],
[
1510865001779,
2263
],
[
1511187269606,
2015
],
[
1511427643782,
2133
],
[
1511450773203,
2102
],
[
1511451005412,
2115
],
[
1511451304388,
3089
],
[
1511453999510,
2606
],
[
1511944094269,
2031
],
[
1511954746563,
8237
],
[
1511954751674,
2287
],
[
1511972544694,
2498
],
[
1511972751162,
1916
],
[
1511973223244,
1906
],
[
1512055094131,
2388
],
[
1512077857104,
1882
],
[
1512099139517,
2161
],
[
1512120459816,
1966
],
[
1512162399189,
2277
],
[
1512163767141,
1943
],
[
1512179800906,
2055
],
[
1512309886828,
2005
],
[
1512470698500,
1961
],
[
1512761962324,
1888
],
[
1513245903425,
2351
],
[
1513352924674,
2333
],
[
1513353222589,
2211
],
[
1513362777784,
2088
],
[
1513411109488,
4006
],
[
1513411116492,
6117
],
[
1513600891198,
2410
],
[
1514084685141,
2238
],
[
1515557731895,
2695
],
[
1515608189601,
2297
],
[
1515771175898,
3458
],
[
1516005932723,
7778
],
[
1516006836283,
1982
],
[
1516007232360,
1816
],
[
1516007683516,
1824
],
[
1516026470835,
5564
],
[
1516033036182,
2888
],
[
1516033307728,
1687
],
[
1516176175512,
2530
],
[
1516224813122,
2829
],
[
1516294168954,
3013
],
[
1516367996876,
1892
],
[
1516369492415,
2663
],
[
1516387589354,
1851
],
[
1516923449872,
2243
],
[
1517015910990,
3415
],
[
1517561581959,
10498
],
[
1517572783615,
2508
],
[
1517574674573,
2418
],
[
1517574785823,
2498
],
[
1517738902232,
4502
],
[
1517941990145,
2361
],
[
1518009530938,
2261
],
[
1518098000088,
5913
],
[
1518101564119,
2160
],
[
1518105046114,
2192
],
[
1518432299362,
2613
],
[
1518556442738,
2755
],
[
1518559007871,
3269
],
[
1518667015793,
2991
],
[
1518670357211,
2275
],
[
1518694544187,
2069
],
[
1518698492275,
2456
],
[
1518717573743,
3558
],
[
1519566666382,
2807
],
[
1519928206531,
3564
],
[
1520014707336,
3764
],
[
1520015181162,
4955
],
[
1520015185970,
5576
],
[
1520050235445,
3634
],
[
1520271326365,
4779
],
[
1520351298082,
13851
],
[
1520523718408,
2944
],
[
1520531136764,
2761
],
[
1520971907802,
3315
],
[
1521785906747,
3732
],
[
1521899571354,
4153
]
],
"build-time": [
[
1448987321052,
1858932
],
[
1453303527939,
1797031
],
[
1455401849963,
1980267
],
[
1455719297907,
2070230
],
[
1458048441048,
2327642
],
[
1460492780603,
2829563
]
],
"pull-time": [
[
1501831474703,
401791
],
[
1505766565829,
610860
],
[
1509958323284,
396580
],
[
1511628712602,
601599
],
[
1511872213366,
414070
],
[
1512096207343,
629850
],
[
1515770109064,
1325293
],
[
1515837154172,
1094785
],
[
1516712859734,
1932678
],
[
1516712859930,
1811435
],
[
1517263730040,
2028933
],
[
1518177480410,
1542786
],
[
1518622891004,
890172
],
[
1519670324672,
1498211
],
[
1519734987758,
1819096
],
[
1519767522929,
2734861
],
[
1519976642001,
1738097
],
[
1520265598501,
1901080
],
[
1520608084123,
2386888
],
[
1520860439504,
1350073
]
]
},
"description": "The Firefox browser by Mozilla."
}
},
"mailer": {
"block": false,
"secure": true,
"from": "Janitor <[email protected]>",
"host": "mail.example.com",
"auth": {
"user": "[email protected]",
"pass": "[REDACTED]"
}
},
"waitlist": {
"[email protected]": 1466333292380,
"[email protected]": 1466588508020,
"[email protected]": 1467494554487
},
"users": {
"[email protected]": {
"keys": {
"cloud9": "",
"cloud9user": "admin",
"ssh": {
"fingerprint": "00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00",
"privateKey": "-----BEGIN RSA PRIVATE KEY-----\r\n[REDACTED]\r\n-----END RSA PRIVATE KEY-----\r\n",
"publicKey": "ssh-rsa [REDACTED]"
},
"github": {
"username": "admin",
"accessToken": "[REDACTED]",
"authorizedKeys": [
{
"id": 1234567,
"key": "ssh-rsa [REDACTED]"
}
],
"emails": [
"[email protected]",
"admin@localhost"
]
}
},
"machines": {
"firefox": [
{
"id": 0,
"properties": {
"name": "Firefox #0"
},
"status": "started",
"docker": {
"host": "moz1.janitor.technology",
"container": "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcd",
"ports": {
"22": {
"port": 45795,
"proxy": "none"
},
"8087": {
"port": 45796,
"proxy": "https"
},
"8088": {
"port": 45797,
"proxy": "https"
},
"8089": {
"port": 45798,
"proxy": "https"
}
}
},
"data": {
"updated": 1512076421732
},
"project": "firefox"
},
{
"id": 1,
"properties": {
"name": "Firefox #1"
},
"status": "started",
"docker": {
"host": "ovh1.janitor.technology",
"container": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"ports": {
"22": {
"port": 46247,
"proxy": "none"
},
"8087": {
"port": 46248,
"proxy": "https"
},
"8088": {
"port": 46249,
"proxy": "https"
},
"8089": {
"port": 46250,
"proxy": "https"
}
}
},
"data": {
"updated": 1515783828797
},
"project": "firefox"
}
]
},
"lastvnc": {
"project": "firefox",
"machine": 0
},
"data": {
"joined": 1444033063544
},
"lastProxyPort": 43347,
"profile": {
"name": "Admin"
},
"configurations": {},
"notifications": {
"enabled": true,
"feed": []
},
"emails": [
"[email protected]"
]
}
},
"admins": {
"[email protected]": true
},
"ports": {
"next": 47201,
"http": 1080,
"https": 1443
},
"hosts": {
"moz1.janitor.technology": {
"properties": {
"port": 2376,
"ca": "-----BEGIN CERTIFICATE-----\r\n[REDACTED]\r\n-----END CERTIFICATE-----\r\n",
"crt": "-----BEGIN CERTIFICATE-----\r\n[REDACTED]\r\n-----END CERTIFICATE-----\r\n",
"key": "-----BEGIN RSA PRIVATE KEY-----\r\n[REDACTED]\r\n-----END RSA PRIVATE KEY-----\r\n"
},
"oauth2client": {
"id": "[REDACTED]",
"secret": "[REDACTED]"
}
},
"pianosa.janitor.technology": {
"properties": {
"port": 2376,
"ca": "-----BEGIN CERTIFICATE-----\r\n[REDACTED]\r\n-----END CERTIFICATE-----\r\n",
"crt": "-----BEGIN CERTIFICATE-----\r\n[REDACTED]\r\n-----END CERTIFICATE-----\r\n",
"key": "-----BEGIN RSA PRIVATE KEY-----\r\n[REDACTED]\r\n-----END RSA PRIVATE KEY-----\r\n"
},
"oauth2client": {
"id": "[REDACTED]",
"secret": "[REDACTED]"
}
},
"ovh1.janitor.technology": {
"properties": {
"port": 2376,
"ca": "-----BEGIN CERTIFICATE-----\r\n[REDACTED]\r\n-----END CERTIFICATE-----\r\n",
"crt": "-----BEGIN CERTIFICATE-----\r\n[REDACTED]\r\n-----END CERTIFICATE-----\r\n",
"key": "-----BEGIN RSA PRIVATE KEY-----\r\n[REDACTED]\r\n-----END RSA PRIVATE KEY-----\r\n"
},
"oauth2client": {
"id": "[REDACTED]",
"secret": "[REDACTED]"
}
}
},
"oauth2tokens": {
"[REDACTED]": {
"client": "[REDACTED]",
"date": 1487340299537,
"email": "[email protected]",
"scope": "user:ports"
},
"[REDACTED]": {
"client": "[REDACTED]",
"date": 1487858678284,
"email": "[email protected]",
"scope": "user:ports"
}
},
"security": {},
"cookieNames": {
"token": "token-1234567890123"
},
"oauth2providers": {
"github": {
"id": "",
"secret": "",
"hostname": "github.com",
"api": "api.github.com"
}
},
"blog": {
"topics": [
{
"id": 169,
"title": "Datadog Sponsorship Announcement",
"fancy_title": "Datadog Sponsorship Announcement",
"slug": "datadog-sponsorship-announcement",
"posts_count": 1,
"reply_count": 0,
"highest_post_number": 1,
"image_url": null,
"created_at": "2018-03-09T11:40:54.021Z",
"last_posted_at": "2018-03-09T11:40:54.136Z",
"bumped": true,
"bumped_at": "2018-03-12T10:18:31.586Z",
"unseen": false,
"pinned": false,
"unpinned": null,
"visible": true,
"closed": false,
"archived": false,
"bookmarked": null,
"liked": null,
"tags": [
"published"
],
"views": 30,
"like_count": 2,
"has_summary": false,
"archetype": "regular",
"last_poster_username": "Coder206",
"category_id": 9,
"pinned_globally": false,
"featured_link": null,
"has_accepted_answer": false,
"posters": [
{
"extras": "latest single",
"description": "Original Poster, Most Recent Poster",
"user_id": 7,
"primary_group_id": null
}
],
"post_body_html": "<p>Hi there,</p>\n<p>As you may know, Janitor uses <a href=\"https://www.datadoghq.com/\">Datadog</a> to keep the team informed of the health and performance of our Docker servers. The addition of our 6th server OVH1, lead to a new step in the relationship between Datadog and Janitor. We are thrilled to announce that Datadog became a sponsor to Janitor!</p>\n<p>This new sponsorship enables us to monitor all of our ever-increasing number of servers and will help us make Janitor even more reliable as a platform for working on Open Source projects.</p>\n<p>In celebration, we are working on making the data collected by Janitor publicly available for everyone. To start this off, here are some public dashboards made with Datadog featuring data about Janitor:</p>\n<ul>\n<li><a href=\"https://p.datadoghq.com/sb/9548ef20d-803ca9ccc697ada769fcf5ef9ebcaa9c\">Running Containers</a></li>\n<li><a href=\"https://p.datadoghq.com/sb/9548ef20d-cb545bf38f71c88d07ceec6372fd0fd9\">Server Metrics</a></li>\n</ul>\n<p>Stay tuned for more!</p>\n<p>Thanks,<br>\nTeam Janitor</p>"
},
{
"id": 140,
"title": "Janitor News #10",
"fancy_title": "Janitor News #10",
"slug": "janitor-news-10",
"posts_count": 4,
"reply_count": 0,
"highest_post_number": 4,
"image_url": null,
"created_at": "2018-01-18T09:51:00.224Z",
"last_posted_at": "2018-02-01T09:28:25.093Z",
"bumped": true,
"bumped_at": "2018-02-01T09:28:25.093Z",
"unseen": false,
"pinned": false,
"unpinned": null,
"visible": true,
"closed": false,
"archived": false,
"bookmarked": null,
"liked": null,
"tags": [
"published"
],
"views": 199,
"like_count": 5,
"has_summary": false,
"archetype": "regular",
"last_poster_username": "Jan",
"category_id": 9,
"pinned_globally": false,
"featured_link": null,
"has_accepted_answer": false,
"posters": [
{
"extras": "latest",
"description": "Original Poster, Most Recent Poster",
"user_id": 1,
"primary_group_id": null
},
{
"extras": null,
"description": "Frequent Poster",
"user_id": 6,
"primary_group_id": null
}
],
"post_body_html": "<p>Happy 2018 everyone!</p>\n<p>We hope you’ve had a smooth start into the year, and wish you all the best in your life and projects.<br>\nThis is your recurrent burst of good news about <a href=\"https://janitor.technology\">Janitor</a>.</p>\n<h2>First Survey</h2>\n<p>We have big plans for 2018, and about 500 people now use Janitor to contribute to open source software. We’d love to understand what you’re getting out of Janitor, and what we could improve to make your life easier.</p>\n<p><a href=\"https://goo.gl/forms/FGjYPybIpfUN3M0m2\">2018 Janitor Survey</a> (should take &lt; 3 minutes)</p>\n<p>Please help us do our best work this year. In return, we’ll publicly share the stats and insights via our <a href=\"https://janitor.technology/blog/\">blog</a>.</p>\n<h2>Towards Windows Support</h2>\n<p>Last month at Mozilla’s All Hands in Austin, we announced Windows environments in Janitor for mid-2018. You can watch the <a href=\"https://www.youtube.com/watch?v=jHomOSa_WEc\">lightning talk</a> and the <a href=\"https://docs.google.com/presentation/d/1gWu2Q2ejd4eZSuMylHu6W5xuJ89xch3Dve0qek0jlPU/edit?usp=sharing\">slides</a> online.</p>\n<p>Since then, we’ve iterated on a prototype Windows image for Firefox (based on a <a href=\"https://azuremarketplace.microsoft.com/en-ca/marketplace/apps/Microsoft.Windows10RS3ProNx64-ARM?tab=Overview\">Windows 10 VM</a> in Azure) and we’re now looking into using Azure’s <a href=\"https://docs.microsoft.com/en-ca/rest/api/compute/virtualmachines\">REST API</a> to allow Janitor users to spawn and automatically configure new VMs based on our Firefox Windows image. This is similar to spawning and auto-configuring new Docker containers based on our <a href=\"https://janitor.technology/projects/\">Linux images</a> today.</p>\n<p>It’s still early days, but if you’re excited about Windows support, you can track our progress with the new <a href=\"https://github.com/JanitorTechnology/janitor/projects/4\">Janitor Windows roadmap</a>.</p>\n<h2>Announcing Janitor 0.0.10</h2>\n<p>We’ve improved, upgraded and extended Janitor in many cool ways. So much that the next release should hopefully take us from Alpha to <a href=\"https://github.com/JanitorTechnology/janitor/milestone/2\">Beta</a>, which will bring even more exciting features, supported open source projects, users, speed, stability and scalability.</p>\n<p>Here is what we did since 0.0.9 was released 4 months ago:</p>\n<ul>\n<li>Quick <a href=\"https://twitter.com/jankeromnes/status/938446519530901504\">preview URLs</a> in the IDE (notriddle)</li>\n<li>Improved <a href=\"https://github.com/JanitorTechnology/dockerfiles/commit/6d3e7835c90fafe76a2e8463b4d5104ac0a39a9d\">Run scripts</a> for most projects (janx)</li>\n<li>\n<a href=\"https://github.com/JanitorTechnology/janitor/issues/182\">Enabled</a> collaborative editing in the IDE (janx)</li>\n<li>New <a href=\"https://janitor.technology/design/\">website design</a> for Janitor to be released soon (ntim, arshad, notriddle)</li>\n<li>New <a href=\"https://janitor.technology/containers-new/\">containers page</a> with a cool SSH one-liner (ntim)</li>\n<li>New <a href=\"https://janitor.technology/blog-new/\">blog page</a> populated directly from our <a href=\"https://discourse.janitor.technology/t/newsletters-composed-in-discourse-and-published-in-janitor/100\">Discourse</a> (notriddle)</li>\n<li>New <a href=\"https://ovh1.janitor.technology/\">OVH1</a> Docker server, our most powerful yet (16 CPU, 64GB RAM, 2TB SSD)</li>\n<li>\n<a href=\"https://twitter.com/jankeromnes/status/956529784569331712\">Added</a> the <a href=\"https://github.com/Chocobozzz/PeerTube\">PeerTube</a> project (janx, bnjbvr, Chocobozzz)</li>\n<li>\n<a href=\"https://github.com/yuzu-emu/yuzu/issues/35\">Added</a> the <a href=\"https://github.com/yuzu-emu/yuzu\">Yuzu Emulator</a> project (etiennewan)</li>\n<li>Refactored most of our Node.js modules to async/await</li>\n<li>Tested Janitor on an iPad and <a href=\"https://twitter.com/mozhacks/status/941802182860406784\">it works!</a> (Flaki)</li>\n<li>Supported UTF-8 in all recent containers</li>\n<li>Supported multiple email addresses per user, allowing imports from GitHub</li>\n<li>Supported validation functions and ‘*’ URL parameters in our <a href=\"https://github.com/JanitorTechnology/selfapi\">self-testing API system</a>\n</li>\n<li>Latest LLVM toolchain (clang 6.0, lld 6.0, lldb 6.0)</li>\n<li>Latest Rust toolchain (stable 1.23.0, nightly 1.25.0)</li>\n<li>Latest Git (2.16.1)</li>\n<li>Latest Mercurial (4.4.1)</li>\n<li>Latest Node.js (node 8.9.4, npm 5.6.0, nvm 0.33.8)</li>\n<li>Latest <a href=\"https://github.com/sharkdp/fd\">fd</a> (6.2.0)</li>\n<li>Latest <a href=\"https://github.com/BurntSushi/ripgrep\">rg</a> (0.7.1)</li>\n<li>Latest <a href=\"http://rr-project.org/\">rr</a> (5.1.0)</li>\n<li>Latest Vim 8 + latest Neovim</li>\n<li>Latest Cloud9 SDK and noVNC</li>\n<li>… plus many more upgrades, bug fixes, stability and performance improvements</li>\n</ul>\n<p>And that’s a wrap! As always, please feel free to stop by our <a href=\"https://kiwiirc.com/client/irc.freenode.net/?#janitor\">IRC channel</a> and <a href=\"https://discourse.janitor.technology\">Discourse forum</a> to learn more about this project. We’d love to meet you.</p>\n<p>Thanks for your time!<br>\nTeam Janitor</p>"
},
{
"id": 67,
"title": "Janitor News #9",
"fancy_title": "Janitor News #9",
"slug": "janitor-news-9",
"posts_count": 12,
"reply_count": 2,
"highest_post_number": 12,
"image_url": null,
"created_at": "2017-10-03T12:38:11.821Z",
"last_posted_at": "2017-12-04T14:09:20.084Z",
"bumped": true,
"bumped_at": "2017-12-04T16:11:48.544Z",
"unseen": false,
"pinned": false,
"unpinned": null,
"visible": true,
"closed": false,
"archived": false,
"bookmarked": null,
"liked": null,
"tags": [
"published"
],
"views": 422,
"like_count": 5,
"has_summary": false,
"archetype": "regular",
"last_poster_username": "Jan",
"category_id": 9,
"pinned_globally": false,
"featured_link": null,
"has_accepted_answer": false,
"posters": [
{
"extras": "latest",
"description": "Original Poster, Most Recent Poster",
"user_id": 1,
"primary_group_id": null
},
{
"extras": null,
"description": "Frequent Poster",
"user_id": 7,
"primary_group_id": null
},
{
"extras": null,
"description": "Frequent Poster",
"user_id": 6,
"primary_group_id": null
}
],
"post_body_html": "<p>Hi there!</p>\n<p>This is your recurrent burst of good news about <a href=\"https://janitor.technology\">Janitor</a>.<br>\nThank you ever so much for being part of this community. It really means a lot.</p>\n<h2>Announcing Windows Environments</h2>\n<p>Janitor is great for quickly fixing platform-specific bugs in your projects, especially if you don’t normally develop on that platform. Today, we only provide Linux containers (Ubuntu 16.04) but many of you asked for native Windows environments on Janitor, so that’s exactly what we plan to give you.</p>\n<p>We want to make it easy for you to work on all operating systems, without the hassle of setting up a VM or maintaining a dual boot. In fact, you won’t even need to install anything other than a good web browser (like <a href=\"https://www.mozilla.org/en-US/firefox/new/\">Firefox Quantum</a>) because our Windows environments will be accessible from the web, with a graphical VNC environment, just like our current Linux containers.</p>\n<p>We’re looking into Windows VMs on Azure and TaskCluster workers on AWS. If Mozilla plays along, you should see Windows environments for Firefox on Janitor within just a few months. (If you can help us get there faster, please let us know <a href=\"https://github.com/JanitorTechnology/janitor/issues/3\">here</a>, <a href=\"https://discourse.janitor.technology/t/windows-container-support-would-be-really-really-cool/85\">here</a> or <a href=\"https://kiwiirc.com/client/irc.freenode.net/?#janitor\">here</a>.)</p>\n<h2>Announcing Janitor 0.0.9</h2>\n<p>So much has happened this year that it was hard to find time to write about our progress. This version bump was long overdue.</p>\n<p>Here is a quick rundown of what we did since July:</p>\n<ul>\n<li>Now serving Cloud9 IDE directly from Janitor (no <a href=\"https://c9.io\">c9.io</a> account required anymore)</li>\n<li>Made both IDE and VNC load much faster (thanks to browser caching improvements)</li>\n<li>Improved our Docker proxy to allow working in multiple containers at the same time</li>\n<li>Added the <a href=\"https://www.discourse.org/\">Discourse</a> open source project to Janitor (thanks notriddle!)</li>\n<li>Added <a href=\"https://github.com/JanitorTechnology/dockerfiles/blob/master/firefox/janitor-hg.json\">janitor.json</a> configuration files to automate your project’s workflows on Janitor (thanks ntim!)</li>\n<li>Added two new Docker servers to our cluster (thanks IRILL for the much needed sponsorship upgrade!)</li>\n<li>Added a “Reviews” IDE sidebar with code review comments you need to address (thanks ntim!)</li>\n<li>Now pulling automated Docker image builds (thanks to Docker Hub and CircleCI)</li>\n<li>Expanded our <a href=\"https://janitor.technology/reference/api#containers\">API</a> to manage Docker containers (to create / inspect / delete containers and image layers)</li>\n<li>Created a Docker administration page to efficiently manage our container farm</li>\n<li>Cleaner UI and more controls in our “Projects” and “Containers” pages (thanks ntim, Coder206 and fbeaufort!)</li>\n<li>Dropped the “The” in “The Janitor” because it’s cleaner (thanks arshad!)</li>\n<li>Refreshed Firefox, Servo and Chromium project logos (thanks Coder206, arshad and ntim!)</li>\n<li>Switched Firefox (hg) from mozilla-central to mozilla-unified (thanks ntim)</li>\n<li>Upgraded to Git 2.15.0</li>\n<li>Upgraded to Mercurial 4.4.1</li>\n<li>Upgraded to Clang 5.0 and replaced Gold with LLD 5.0 (now links Firefox <a href=\"https://twitter.com/jankeromnes/status/935804934087421952\">2x faster</a>)</li>\n<li>Upgraded to Rust 1.22.1 / 1.23.0-nightly (installed via rustup 1.7.0)</li>\n<li>Upgraded to Node.js 8.9.1 and npm 5.5.1 (now installed via nvm 0.33.6)</li>\n<li>Upgraded to Ninja 1.8.2 (now with bash completion)</li>\n<li>Upgraded to rr 5.0.0</li>\n<li>Upgraded to the latest Vim 8 <em>and</em> Neovim</li>\n<li>Installed the latest valgrind (for nbp)</li>\n<li>Installed the latest tmux (for Paul Rouget)</li>\n<li>… and many more improvements and bug fixes.</li>\n</ul>\n<h2>Our Cluster Just Got Bigger</h2>\n<p>Janitor is now used by over 400 developers and our hardware was starting to feel small, so IRILL upgraded their sponsorship, growing our cluster to a total of 6 servers (4 Docker hosts, including 3 at IRILL in Versaille and 1 at Mozilla in California, as well as 2 VPS web app hosts at OVH in Gravelines). This means that Janitor now runs on 42 CPUs, 120 GB RAM and 4 TB disk space.</p>\n<p>Here is a <a href=\"https://photos.app.goo.gl/QwHhLG56VY5mXy732\">picture</a> of EtienneWan and I manually installing the new servers in IRILL’s data center near Paris.</p>\n<p>You can really thank IRILL and Sylvestre for keeping us going! In the future we’ll make it much simpler for anyone to join our cluster, in order to accept many more open source projects and developers to Janitor.</p>\n<h2>Janitor Around the World</h2>\n<p>Here are some events we went to, or are planning to attend:</p>\n<ul>\n<li>Watch how Coder206 <a href=\"https://youtu.be/OzbGW9unFdo\">presented Janitor</a> to Sudbury’s Google Developer Group, with a cool side-by-side comparison of hacking on Servo.</li>\n<li>Come see two Janitor lightning talks at Mozilla’s All Hands in Austin this December, in the <a href=\"https://austinyallhands2017.sched.com/event/Cx7t/firefox-lightning-talks\">Firefox Lightning Talks</a> and <a href=\"https://austinyallhands2017.sched.com/event/CwSj/28-lighting-talks-power-tools-for-open-source\">Power tools for open source</a> tracks.</li>\n<li>Come hack on open source software with Janitor at INSA Lyon or 42 in Paris in just a few months (two hackathons to be announced).</li>\n</ul>\n<h2>Last Stretch to Beta</h2>\n<p>2017 has been such a wild ride. We significantly lowered the barrier to new contributions for several major open source projects, allowing many people to contribute to Firefox, Chromium, Servo, Thunderbird (and <a href=\"https://janitor.technology/projects/\">more</a>) for the first time, and we proved that it was possible to modernize software development at scale. Now we just need to finish a <a href=\"https://github.com/JanitorTechnology/janitor/issues/166\">few more things</a> before we can call our Alpha a resounding success.</p>\n<p>In 2018, Janitor Beta will get us to the next level, with Windows environments (and maybe MacOS too); massive Docker scaling improvements; an open build farm that anyone can join; new open source partnerships; and even more radical automation to make software development faster and more fun. More on that very soon.</p>\n<p>And that’s a wrap for today. How is everything going? We’d love to know! Also our <a href=\"https://discourse.janitor.technology\">Discourse</a> and <a href=\"https://kiwiirc.com/client/irc.freenode.net/?#janitor\">IRC channel</a> are great resources to ask questions and learn more about this project.</p>\n<p>Stay safe,<br>\nTeam Janitor</p>\n<p>P.S. One more thing: Here is a <a href=\"https://matrix.org/_matrix/media/v1/download/matrix.org/mTRLzIQmEEdMtlNXIbQiKGIP\">sneak peek</a> at the beautiful new design that ntim, arshad and notriddle are working on for Janitor.</p>"
},
{
"id": 124,
"title": "Janitor News #8",
"fancy_title": "Janitor News #8",
"slug": "janitor-news-8",
"posts_count": 1,
"reply_count": 0,
"highest_post_number": 1,
"image_url": null,
"created_at": "2017-07-01T07:00:00.000Z",
"last_posted_at": "2017-07-01T07:00:00.000Z",
"bumped": true,
"bumped_at": "2018-01-18T09:52:42.471Z",
"unseen": false,
"pinned": false,
"unpinned": null,
"visible": true,
"closed": false,
"archived": false,
"bookmarked": null,
"liked": null,
"tags": [
"published"
],
"views": 143,
"like_count": 0,
"has_summary": false,
"archetype": "regular",
"last_poster_username": "Jan",
"category_id": 9,
"pinned_globally": false,
"featured_link": null,
"has_accepted_answer": false,
"posters": [
{
"extras": "latest single",
"description": "Original Poster, Most Recent Poster",
"user_id": 1,
"primary_group_id": null
}
],
"post_body_html": "<p>Hi there,</p>\n<p>This is your recurrent burst of good news about the <a href=\"https://janitor.technology/\">Janitor</a>.</p>\n<h2>Janitor 0.0.8 is Live!</h2>\n<p>We’re inching ever closer to Beta, taking the pain out of Open Source contributions bit by bit.</p>\n<p>Here is a quick rundown of what we did since February:</p>\n<ul>\n<li>Brand-new <a href=\"https://discourse.janitor.technology/\">Discourse forum</a> for our caring community</li>\n<li>Always-fresh <a href=\"https://janitor.technology/reference/api\">API reference</a> to interact with our service</li>\n<li>Faster and more stable <a href=\"http://novnc.com\">noVNC</a> remote desktop (production build)</li>\n<li>Faster container spawn times (3s → <a href=\"https://janitor.technology/projects/servo/\">1.7s</a>)</li>\n<li>Editable <a href=\"https://github.com/JanitorTechnology/janitor/blob/864c6d7097dd28763b9e1f8fea3d9d3e75e37f6e/templates/configurations/.gitconfig\">.gitconfig</a> and <a href=\"https://github.com/JanitorTechnology/janitor/blob/864c6d7097dd28763b9e1f8fea3d9d3e75e37f6e/templates/configurations/.hgrc\">.hgrc</a> for your containers (contributed by <a href=\"https://github.com/nt1m\">@nt1m</a>)</li>\n<li>Editable container names (contributed by <a href=\"https://github.com/bnjbvr\">@bnjbvr</a> and <a href=\"https://github.com/nt1m\">@nt1m</a>)</li>\n<li>\n<a href=\"https://janitor.technology/reference/api#enable-or-disable-user-notifications\">API</a> for upcoming push notifications (contributed by <a href=\"https://github.com/Coder206\">@Coder206</a>)</li>\n<li>Automated <a href=\"https://github.com/JanitorTechnology/janitor/blob/864c6d7097dd28763b9e1f8fea3d9d3e75e37f6e/package.json#L21-L22\">linting</a> and many code improvements (contributed by <a href=\"https://github.com/magopian\">@magopian</a>)</li>\n<li>Automated building and deploying of our <a href=\"https://github.com/JanitorTechnology/dockerfiles\">dockerfiles</a> (using CircleCI)</li>\n<li>Multiple containers per project now possible (for faster multi-tasking)</li>\n<li>Latest Git (2.8.2 → 2.13.3, SHA-1 collision safe + new <a href=\"http://blog.deveo.com/whats-new-in-git-2-11/#experimentalheuristicsgitdiff\">indent heuristic</a>)</li>\n<li>Latest Mercurial (3.7.3 → 4.1.3, improved Firefox clone times 16min → 4min)</li>\n<li>Latest Rust (stable + nightly, with <a href=\"http://blog.burntsushi.net/ripgrep/\">ripgrep</a>, <a href=\"https://github.com/rust-lang-nursery/rustfmt\">rustfmt</a>, <a href=\"https://github.com/Manishearth/rust-clippy\">clippy</a> and <a href=\"https://github.com/rust-lang-nursery/rls\">rls</a>)</li>\n<li>Latest LLVM &amp; Clang (3.9 → 4.0, with the <a href=\"http://clang.llvm.org/extra/clang-tidy/\">clang-tidy</a> static analyzer)</li>\n<li>Latest Node.js (6.1.0 → 8.2.1, with <a href=\"https://medium.com/npm-inc/npm-5-is-now-npm-latest-d674e9e3b0ec\">5x faster</a> npm + <a href=\"https://v8project.blogspot.fr/2017/03/v8-release-58.html\">5% faster</a> V8)</li>\n<li>Latest Arc (command-line tool for the <a href=\"https://www.phacility.com/phabricator/\">Phabricator</a> code review system)</li>\n<li>Latest Cloud9 SDK (to ship a personalized IDE with every container)</li>\n<li>Latest htop and nano</li>\n<li>Latest Vim 8 <strong>and</strong> latest Neovim</li>\n<li>Better Terminal colors &amp; completion</li>\n</ul>\n<p>And it’s finally possible to hack on Janitor using Janitor! Now you can <a href=\"https://github.com/JanitorTechnology/janitor/issues/31\">code while you code</a>.</p>\n<h2>Up Next…</h2>\n<p>But wait, there’s more!</p>\n<p>Here is what we’re currently working on:</p>\n<ul>\n<li>Quick IDE buttons to Build, Update sources and Send to code review in just a few clicks</li>\n<li>A <a href=\"https://github.com/JanitorTechnology/janitor/blob/c4c85cc938b858f87e0798c51c44672884c0f616/.janitor.json#L27-L32\">janitor.json</a> configuration file to automate your project’s workflows on Janitor</li>\n<li>Many <a href=\"https://github.com/JanitorTechnology/janitor/issues/24\">more projects</a> to be added to Janitor soon</li>\n<li>A <a href=\"https://github.com/JanitorTechnology/janitor/pull/80\">GitHub integration</a> for faster sign-in &amp; faster pull requests</li>\n<li>A Bugzilla integration for easier contributions to Firefox &amp; Thunderbird</li>\n<li>Opt-in <a href=\"https://discourse.janitor.technology/t/implementing-notifications/40\">push notifications</a> in Janitor and Cloud9 (to let know know when builds finish or when reviews are accepted)</li>\n<li>An <a href=\"https://github.com/nt1m/c9.ide.reviewcomments\">IDE sidebar</a> with code review comments you need to address</li>\n<li>Static analysis and code coverage feedback right in your code editor, starting with Firefox (JS, C++ and then Rust)</li>\n<li>Open pull requests (and other review requests) directly in Janitor to try them out faster</li>\n<li>Open failed Firefox test containers from Treeherder directly in Janitor (to let you debug problems in situ instead of trying to reproduce them locally)</li>\n<li>An API to open just about anything in Janitor really fast</li>\n</ul>\n<h2>Meet us IRL?</h2>\n<p>Sometimes we close our laptops to go outside, and we’d love to meet you!</p>\n<p>Here are some recent events we went to:</p>\n<ul>\n<li>May 18: <a href=\"https://www.meetup.com/Firefox-France-User-Group/events/238460016/?eventId=238460016\">Mozilla Roadshow</a> in Paris. I explained Janitor and here are my <a href=\"https://docs.google.com/presentation/d/1gjK0AGHvk4mnfcyGLd2NZeigVq5raqGnGwmgVRu8QKQ/present#slide=id.g20f8094b82_0_166\">slides</a>, a <a href=\"https://youtu.be/Q2ugwGkT8IU\">video</a> and a longer <a href=\"https://air.mozilla.org/mozilla-roadshow-paris/\">video</a> (in French).</li>\n<li>May 31: <a href=\"https://www.meetup.com/LyonJS/events/239827652/\">Lyon JS</a> in Lyon. A monthly meetup about JavaScript.</li>\n<li>June 14: <a href=\"https://www.meetup.com/LLVM-Clang-social/events/239350604/\">Clang Social</a> in Paris. We showed off Janitor and got people very excited.</li>\n<li>June 26-30: <a href=\"https://wiki.mozilla.org/All_Hands/SanFrancisco\">Mozilla All Hands</a> in San Francisco. Great technical discussions and many exciting demos.</li>\n</ul>\n<p>And that’s about all we could fit into an email!</p>\n<p>If you’d like, please come hang with us in our new <a href=\"https://discourse.janitor.technology/\">Discourse forum</a> or in our friendly <a href=\"https://kiwiirc.com/client/irc.freenode.net/?#janitor\">IRC channel</a>. They’re great places to ask questions or to chat about this project.</p>\n<p>Cheerio,<br>\nJan</p>"
},
{
"id": 125,
"title": "Intent to Implement: Firefox IDE service",
"fancy_title": "Intent to Implement: Firefox IDE service",
"slug": "intent-to-implement-firefox-ide-service",
"posts_count": 1,
"reply_count": 0,
"highest_post_number": 1,
"image_url": null,
"created_at": "2017-06-01T07:00:00.000Z",
"last_posted_at": "2017-06-01T07:00:00.000Z",
"bumped": true,
"bumped_at": "2018-01-11T17:23:00.399Z",
"unseen": false,
"pinned": false,
"unpinned": null,
"visible": true,
"closed": false,
"archived": false,
"bookmarked": null,
"liked": null,
"tags": [
"published"
],
"views": 132,
"like_count": 1,
"has_summary": false,
"archetype": "regular",
"last_poster_username": "Jan",
"category_id": 9,
"pinned_globally": false,
"featured_link": null,
"has_accepted_answer": false,
"posters": [
{
"extras": "latest single",
"description": "Original Poster, Most Recent Poster",
"user_id": 1,
"primary_group_id": null
}
],
"post_body_html": "<p><em>(This email was sent to Mozilla’s <a href=\"https://lists.mozilla.org/listinfo/tools\">tools</a> mailing list.)</em></p>\n<p>Dear Firefox tooling community,</p>\n<p><a href=\"https://janitor.technology\">Janitor</a>, the zero setup, browser based development environment, has already made it easy for ~<a href=\"https://janitor.technology/data/\">300</a> people to contribute to Firefox, Servo, Thunderbird, Chromium, KDE, Kresus and Janitor itself. It does this by eliminating the complexity that we have in setting up a development environment and reducing it down to a single click.</p>\n<p>It uses <a href=\"https://c9.io/?redirect=0\">Cloud9 IDE</a> + <a href=\"http://novnc.com\">noVNC</a> as front-ends, and Docker containers as back-ends (here is a short <a href=\"https://youtu.be/5sNDMIh-iVw\">video</a>). The environment <a href=\"https://github.com/JanitorTechnology/dockerfiles\">images</a> are updated every day, and new containers are created on-demand from the <a href=\"https://janitor.technology/projects/\">website</a> in just a few seconds.</p>\n<p>This gets new contributors making contributions that we care about more quickly: Instead of the minutes/hours/days usually needed to bootstrap these projects, it just takes <a href=\"https://janitor.technology/projects/firefox/\">2 seconds</a> to get a working environment.</p>\n<p>Now we want to go even further by leveraging this platform to solve key software development issues encountered by more experienced Mozilla developers. Please help us by listing the problems that you encounter in your daily work in <a href=\"https://docs.google.com/a/mozilla.com/document/d/1KmIURMgpAPBi8Bkramo8ITr0fAH1f3XFYLl2hzv0s8M/edit\">this document</a>.</p>\n<p>To seed this discussion, we’ll slightly abuse the “Intent to Implement” email format. Here goes.</p>\n<h2>Summary</h2>\n<p>We want to build a “Firefox IDE” web service that automates the setup and maintenance of development environments for Firefox and Servo, providing containers that are quick to startup and that integrate the tools our developers need to produce high quality code without wasting time setting it all up.</p>\n<p>Firefox IDE will provide a developer-friendly cloud environment that ties together:</p>\n<ul>\n<li>Services like Janitor, Bugzilla, Phabricator and TaskCluster (among others),</li>\n<li>Tools like gdb, rr, clang-tidy, eslint, clippy, ripgrep…,</li>\n<li>Code coverage and static analysis feedback, directly in the code editor.</li>\n</ul>\n<p>This will help automate time-consuming Firefox development workflows, and will ease access to the most powerful Firefox tools &amp; services from a single location: an efficient IDE web front-end connected to auto-configured Docker containers.</p>\n<p>Non-goal: We do not aim to replace local development setups with something new, but instead we wish to complement our current services offering with a developer service that brings live software development much closer to the Firefox CI infrastructure, and that offers convenient access to specific tools and workflows which might be harder to set up locally.</p>\n<h2>Timeframe</h2>\n<p>We start by collecting key problems encountered by experienced Mozilla developers while working on Firefox and Servo in <a href=\"https://docs.google.com/a/mozilla.com/document/d/1KmIURMgpAPBi8Bkramo8ITr0fAH1f3XFYLl2hzv0s8M/edit\">this document</a>.</p>\n<p>We will then work on solving the most compelling problems (with the highest estimated return on investment, based on feature interest and feasibility) and present a minimum viable “Firefox IDE” service to address the selected problems by the end of Q3.</p>\n<p>After that, we hope to invite all Firefox and Servo developers to a Beta of this service; continue collecting feedback and address more problems from our list; and demo our solutions during the All Hands in Cancun.</p>\n<h2>Tracking progress</h2>\n<p>Firefox and Servo development problems: <a href=\"https://docs.google.com/a/mozilla.com/document/d/1KmIURMgpAPBi8Bkramo8ITr0fAH1f3XFYLl2hzv0s8M/edit\">https://docs.google.com/a/mozilla.com/document/d/1KmIURMgpAPBi8Bkramo8ITr0fAH1f3XFYLl2hzv0s8M/edit</a><br>\nRepositories on GitHub: <a href=\"https://github.com/JanitorTechnology/\">https://github.com/JanitorTechnology/</a><br>\nIssues and milestones: <a href=\"https://github.com/JanitorTechnology/janitor/issues\">https://github.com/JanitorTechnology/janitor/issues</a><br>\nIRC: <span class=\"hashtag\">#janitor</span> on Freenode: <a href=\"https://kiwiirc.com/client/irc.freenode.net/?#janitor\">https://kiwiirc.com/client/irc.freenode.net/?#janitor</a></p>\n<p>Thanks!<br>\nJan</p>"
},
{
"id": 126,
"title": "Janitor Alpha 0.0.7 is Live",
"fancy_title": "Janitor Alpha 0.0.7 is Live",
"slug": "janitor-alpha-0-0-7-is-live",
"posts_count": 1,
"reply_count": 0,
"highest_post_number": 1,
"image_url": null,
"created_at": "2017-02-01T07:00:00.000Z",
"last_posted_at": "2017-02-01T07:00:00.000Z",
"bumped": true,
"bumped_at": "2018-01-11T17:22:04.414Z",
"unseen": false,
"pinned": false,
"unpinned": null,
"visible": true,
"closed": false,
"archived": false,
"bookmarked": null,
"liked": null,
"tags": [
"published"
],
"views": 131,
"like_count": 0,
"has_summary": false,
"archetype": "regular",
"last_poster_username": "Jan",
"category_id": 9,
"pinned_globally": false,
"featured_link": null,
"has_accepted_answer": false,
"posters": [
{
"extras": "latest single",
"description": "Original Poster, Most Recent Poster",
"user_id": 1,
"primary_group_id": null
}
],
"post_body_html": "<p>What better day to release <a href=\"https://janitor.technology\">Janitor Alpha 0.0.7</a> and the new MOZ1 backend server than on a <a href=\"https://www.estcequonmetenprodaujourdhui.info/\">Friday</a>?</p>\n<aside class=\"quote\">\n<div class=\"title\">\n<div class=\"quote-controls\"></div>\n Famous last words from last week's newsletter:</div>\n<blockquote>\n<p>All of these improvements should be live by the end of the week, and all new invite emails should be sent out by that time as well.</p>\n</blockquote>\n</aside>\n<h2>How do I try this?</h2>\n<p>Simply log in to <a href=\"https://janitor.technology\">janitor.technology</a>, click on any of the supported <a href=\"https://janitor.technology/projects/\">projects</a> and start hacking.</p>\n<p>If you don’t have an account yet, the Alpha invite process is bit complicated (but we’re working on making it much simpler). You will receive two emails:</p>\n<ul>\n<li>one to create a free <a href=\"https://c9.io\">Cloud9</a> account (no credit card required),</li>\n<li>and another to access your Janitor account.</li>\n</ul>\n<p>Please carefully read the steps in the “Janitor Invite” email, as they explain how to properly link Cloud9 IDE so that you can use it to hack on Firefox, Servo, Chromium, Thunderbird, KDE (and more projects coming soon) directly from Janitor. If you don’t do it, it won’t work.</p>\n<h2>New backend server!</h2>\n<p>The Janitor service now runs on two very powerful Docker servers:</p>\n<ul>\n<li>IRILL which is located in Paris, and will continue to host open source projects,</li>\n<li>MOZ1 which is located in California, and will host all Mozilla projects going forward.</li>\n</ul>\n<p>MOZ1 is a brand new AWS EC2 instance sponsored by Mozilla, which has 16 CPUs, 32GB RAM, 1TB disk space and that can build (from scratch):</p>\n<ul>\n<li>Servo in 08:27,</li>\n<li>Firefox in 11:10,</li>\n<li>Thunderbird in 12:19 (all clobber build times are from today).</li>\n</ul>\n<p>The new project images also contain a few surprises for you:</p>\n<ul>\n<li>a Terminal prompt with colors, Git completions and a fancy branch indicator,</li>\n<li>cool scripts: <code>z</code> to navigate faster and <code>rg</code> to grep faster,</li>\n<li>the official <code>hub</code> script to interact with GitHub repositories,</li>\n<li>and a hidden feature as well (more about it soon).</li>\n</ul>\n<p>MOZ1 is very recent (activated today) so if you started a Janitor <a href=\"https://janitor.technology/contributions/\">contribution</a> before, chances are it’s still hosted on IRILL. If you want to try the new, even faster MOZ1 server, you’ll need to back up your work, delete your previous contribution (and its associated workspace on <a href=\"https://c9.io\">Cloud9</a>) and click on any Mozilla project again. You’ll then automatically land in a new Docker container hosted on MOZ1. (If Cloud9 doesn’t work instantly, please wait a few seconds and refresh the page.)</p>\n<p>A huge <strong>thank you</strong> to everyone who helped ship Janitor Alpha 0.0.7 by writing code, reviewing code, solving problems, or finding more problems! (Please report any new bugs <a href=\"https://github.com/janitortechnology/janitor/issues/new\">here</a> or <a href=\"https://kiwiirc.com/client/irc.freenode.net/?#janitor\">here</a>.)</p>\n<p>With love,<br>\nJan</p>"
},
{
"id": 127,
"title": "Janitor News #7",
"fancy_title": "Janitor News #7",
"slug": "janitor-news-7",
"posts_count": 1,
"reply_count": 0,
"highest_post_number": 1,
"image_url": null,
"created_at": "2017-02-01T07:00:00.000Z",
"last_posted_at": "2017-02-01T07:00:00.000Z",
"bumped": true,
"bumped_at": "2018-01-11T17:22:34.744Z",
"unseen": false,
"pinned": false,
"unpinned": null,
"visible": true,
"closed": false,
"archived": false,
"bookmarked": null,
"liked": null,
"tags": [
"published"
],
"views": 128,
"like_count": 0,
"has_summary": false,
"archetype": "regular",
"last_poster_username": "Jan",
"category_id": 9,
"pinned_globally": false,
"featured_link": null,
"has_accepted_answer": false,
"posters": [
{
"extras": "latest single",
"description": "Original Poster, Most Recent Poster",
"user_id": 1,
"primary_group_id": null
}
],
"post_body_html": "<p>Happy 2017 everyone!</p>\n<p>This is your recurrent burst of good news about the <a href=\"https://janitor.technology/\">Janitor</a>.</p>\n<h2>What’s new in Janitor 0.0.7?</h2>\n<p>We’re about to release our biggest update yet, “Alpha: Mark 7”. It took six months of dedicated efforts, touched almost every line of our code, and will greatly improve our ability to scale by adding more servers to what is now becoming a <a href=\"https://en.wikipedia.org/wiki/Distributed_computing\">distributed system</a>.</p>\n<p>This means that our resource shortage is almost over, and that we’ll finally be able to send out new invites (and also update all project images more frequently). We know that <a href=\"https://janitor.technology/data/\">many</a> of you have been waiting to try the Janitor for months now, and we would like to acknowledge that and thank you for your patience. We hope you’ll enjoy what we built for you.</p>\n<p>Here is a list of changes made since Janitor 0.0.6 (released September 2016):</p>\n<ul>\n<li>Upgraded the Janitor source code to ECMAScript 6</li>\n<li>Updated all <a href=\"https://github.com/janitortechnology/dockerfiles\">project images</a> with the latest sources and the greatest tools (clang 3.9, git 2.11, hg 3.7, vim 8, rust 1.15, node 7.5, rr 4.5, hub, rg, z, …)</li>\n<li>Implemented several important security features</li>\n<li>Implemented an OAuth2-based Single-Sign-On to work transparently across all Janitor hosts</li>\n<li>Started implementing a self-documenting and self-testing <a href=\"https://github.com/janitortechnology/janitor/blob/master/api/index.js\">JSON API</a>\n</li>\n<li>Implemented an <a href=\"https://github.com/janitortechnology/janitor/blob/master/lib/certificates.js\">RSA helper</a> to generate certificates on the fly for SSH, Docker/TLS and HTTPS (automatically signed by <a href=\"https://letsencrypt.org/\">Let’s Encrypt</a>)</li>\n<li>Automated all server <a href=\"https://github.com/janitortechnology/janitor/blob/master/lib/boot.js\">initialization tasks</a>, making most of the Makefile obsolete</li>\n<li>Automated all cluster-joining tasks in a separate <a href=\"https://github.com/janitortechnology/janitor/blob/master/join.js\">helper script</a> (which will eventually allow adding your own servers with a single command and support your own projects on Janitor)</li>\n</ul>\n<p>All of these improvements should be live by the end of the week, and all new invite emails should be sent out by that time as well.</p>\n<h2>Announcing Firefox IDE</h2>\n<p>Now that we’ve laid the foundation for a <a href=\"https://janitor.technology/projects/servo/\">fast</a>, powerful and ever-growing container service for developers, it’s time for Janitor to enter a new phase. Now we would like to automate the development processes of every major open source project out there, starting with Firefox.</p>\n<p>We plan to empower Firefox developers by integrating relevant tools, services and workflows directly in Janitor’s IDE, in order to make them discoverable and easy to use, from a single web interface that can be accessed from anywhere instantly. Contrary to other, more general-purpose development tools, we aim to be highly specialized by implementing all the processes and best practices specific to the Firefox project.</p>\n<p>We will start by building Cloud9 <a href=\"https://cloud9-sdk.readme.io/docs/create-a-package#section-the-plugin\">plugins</a> to update bugs on Bugzilla; trigger new jobs on TaskCluster; send contributions to Autoland; send push notifications about a patch’s progress all the way from review, to automated tests, to finally being merged into the central repository; and augment the IDE’s code editor with static analysis and automatic code quality suggestions based on amazing tools like <a href=\"http://clang.llvm.org/extra/clang-tidy/\">clang-tidy</a>. You can participate in this process by reviewing, contributing or implementing ideas in <a href=\"https://github.com/janitortechnology/janitor/issues/30\">this GitHub issue</a>.</p>\n<p>And if this Firefox IDE experiment is successful, we will create similar IDEs for Servo, Rust, Chromium, Thunderbird, KDE, and all other open source projects that Janitor will support.</p>\n<p>That’s all Folks! As always, previous newsletters can be found on our <a href=\"https://janitor.technology/blog/\">blog</a>, and if you have the time, please drop by to say hi in our very own <a href=\"https://kiwiirc.com/client/irc.freenode.net/?#janitor\">IRC channel</a> (on freenode).</p>\n<p>Peace out,<br>\nJan</p>"
},
{
"id": 128,
"title": "Janitor News #6",
"fancy_title": "Janitor News #6",
"slug": "janitor-news-6",
"posts_count": 1,
"reply_count": 0,
"highest_post_number": 1,
"image_url": null,
"created_at": "2016-11-01T07:00:00.000Z",
"last_posted_at": "2016-11-01T07:00:00.000Z",
"bumped": true,
"bumped_at": "2018-01-11T17:21:45.274Z",
"unseen": false,
"pinned": false,
"unpinned": null,
"visible": true,
"closed": false,
"archived": false,
"bookmarked": null,
"liked": null,
"tags": [
"published"
],
"views": 127,
"like_count": 0,
"has_summary": false,
"archetype": "regular",
"last_poster_username": "Jan",
"category_id": 9,
"pinned_globally": false,
"featured_link": null,
"has_accepted_answer": false,
"posters": [
{
"extras": "latest single",
"description": "Original Poster, Most Recent Poster",
"user_id": 1,
"primary_group_id": null
}
],
"post_body_html": "<p>Hello,</p>\n<p>This is your monthly* burst of good news about the <a href=\"https://janitor.technology/\">Janitor</a>.</p>\n<p>* Well ok, this is actually more of a quarterly thing at the moment, but that doesn’t mean nothing is happening—in fact quite the opposite is true. See for yourself:</p>\n<h2>Janitor &amp; Mozilla’s A-Team</h2>\n<p>In September, I officially joined Mozilla’s <a href=\"https://wiki.mozilla.org/EngineeringProductivity\">Engineering Productivity</a> team (also known as “A-Team”) to help boost the productivity of developers working on Mozilla’s software projects.</p>\n<p>If this sounds like the Janitor to you, then you’re spot on! In fact I’m now working full-time on improving the Janitor, with the support of some amazingly talented A-Team folks, and with the goal of making contributions to Mozilla’s projects like Firefox, Servo and Rust (coming soon) much faster and easier for everyone.</p>\n<p>And because Mozilla is awesome and a fierce supporter of Open Source in general, non-Mozilla projects like Chromium and KDE will continue to be supported, and we won’t stop there—over the next months we’ll continue adding more and more <a href=\"https://github.com/janitortechnology/janitor/issues/24\">amazing projects</a> to the Janitor, like for example Git, Mercurial, Vim, Clang, and one day maybe even the Linux Kernel. The Janitor’s long-term objective is to make open source contributions a breeze for everyone, anywhere in the world.</p>\n<h2>Say hello to Docker Host 2</h2>\n<p>Due to a swift increase in popularity over the last months, the Janitor’s back-end resources became saturated much faster than expected. After a quick datacenter visit to install a new 1 TB drive on Docker Host 1 (which is now 98% full), we realized that adding more disks wouldn’t help much longer.</p>\n<p>So we re-designed the Janitor from the ground up and turned it into a multi-server cluster, which will allow the service to grow significantly over the coming months.</p>\n<p>This is the Janitor cluster today:</p>\n<ul>\n<li>Docker Host 1 (16 CPU, 64 GB, 1 TB) hosted by <a href=\"https://www.irill.org/\">IRILL</a> in a French datacenter,</li>\n<li>Docker Host 2 (16 CPU, 32 GB, 1 TB) hosted by <a href=\"https://www.mozilla.org/en-US/\">Mozilla</a> on an EC2 instance.</li>\n</ul>\n<p>Everything is still hosted on Docker Host 1 (98% full), but all Mozilla projects (about half of the entire load) will be gradually and seamlessly migrated to Docker Host 2 soon. This will free up resources to support more users and projects, and will enable more frequent image updates as well as some overdue server maintenance.</p>\n<p>We’ve also put special efforts into completely automating the addition of new hosts, from automatic <a href=\"https://docs.docker.com/engine/security/https/\">TLS</a> and <a href=\"https://letsencrypt.org/\">Let’s Encrypt</a> certificates to cluster discovery and software updates, so that adding more resources becomes quick and easy. We could even make the cluster grow automatically following demand now.</p>\n<p>If you’re one of the <a href=\"https://janitor.technology/data/\">almost 40</a> people still on the waitlist, we’re so sorry to keep you waiting. We worked relentlessly on building a cluster with more resources, and we’re happy to announce that the waiting is almost over—new invites should be headed your way over the coming weeks.</p>\n<h2>JSON API</h2>\n<p>A cool spin-off from the cluster effort is the <a href=\"https://github.com/janitortechnology/janitor/tree/master/api\">JSON API</a> we designed to automate all things Janitor. It’s based on <a href=\"https://github.com/janitortechnology/selfapi\">Self API</a>, a system that can automatically document and test API functions against their own examples, removing the need to maintain separate documentation or test suites.</p>\n<p>The resulting API documentation will soon be available on the <a href=\"https://janitor.technology\">website</a>, and anyone interested in using it will be able to do so using the website’s password-less authentication, or dedicated OAuth 2 access tokens.</p>\n<h2>Even more news</h2>\n<ul>\n<li>On November 5, there was a <a href=\"https://www.coredump.ch/2016/11/06/rust-servo-hackathon/\">Rust / Servo hackathon</a> with Janitor support at the <a href=\"https://www.coredump.ch/2016/06/06/wir-sind-umgezogen/\">Coredump</a> hackerspace in Zurich.</li>\n<li>On November 12, <a href=\"https://github.com/Coder206\">Patrick Trottier</a> gave a great talk about open source contributions and the Janitor at <a href=\"https://devfest.gdgsudbury.ca/schedule/day1?sessionId=129\">GDG DevFest</a> in Sudbury. Here are his <a href=\"http://slides.com/coder206/thejanitor#/\">slides</a> and a <a href=\"https://www.youtube.com/watch?v=InQAJ4NNt18\">video</a>.</li>\n<li>On December 7, I will present a few Janitor-based <a href=\"https://hawaiiallhands2016.sched.org/event/8s8O/developer-productivity-hacks\">productivity hacks</a> at the Mozilla All Hands in Hawaii.</li>\n<li>We’re currently evaluating how many contributions we’ve enabled. If you shipped code using the Janitor, please send us links to your contributions so we can count them.</li>\n<li>We recently published an <a href=\"https://www.npmjs.com/package/janitor.technology\">NPM module</a> which will eventually allow running private cluster hosts to support your own software projects on the Janitor (coming soon™).</li>\n<li>We would like to open a <a href=\"http://www.discourse.org/\">Discourse</a>. If you know how that works and want to help, please reach out.</li>\n</ul>\n<p>And this wraps up today’s news! If you like to review code, you’re welcome to pick a <a href=\"https://github.com/janitortechnology/janitor/commits/master\">Janitor commit</a> and post feedback on what you don’t like or don’t get about the code. Many thanks!</p>\n<p>Until next time,<br>\nJan</p>"
},
{
"id": 129,
"title": "Janitor News #5",
"fancy_title": "Janitor News #5",
"slug": "janitor-news-5",
"posts_count": 1,
"reply_count": 0,
"highest_post_number": 1,
"image_url": null,
"created_at": "2016-08-01T07:00:00.000Z",
"last_posted_at": "2016-08-01T07:00:00.000Z",
"bumped": true,
"bumped_at": "2018-01-11T17:21:29.049Z",
"unseen": false,
"pinned": false,
"unpinned": null,
"visible": true,
"closed": false,
"archived": false,
"bookmarked": null,
"liked": null,
"tags": [
"published"
],
"views": 128,
"like_count": 0,
"has_summary": false,
"archetype": "regular",
"last_poster_username": "Jan",
"category_id": 9,
"pinned_globally": false,
"featured_link": null,
"has_accepted_answer": false,
"posters": [
{
"extras": "latest single",
"description": "Original Poster, Most Recent Poster",
"user_id": 1,
"primary_group_id": null
}
],
"post_body_html": "<p>Hello,</p>\n<p>We hope that you’ve enjoyed a hot and relaxing summer. It’s time to resume your monthly burst of good news about <a href=\"https://janitor.technology\">the Janitor</a>.</p>\n<h2>A New Order of Magnitude</h2>\n<p>Earlier in June, the Janitor greeted its 100th user, and we’re now growing fast into the three digits. Today, there are <a href=\"https://janitor.technology/data/\">189</a> of us, and we’ve collectively landed <a href=\"https://docs.google.com/presentation/d/19YhJ_C4VhGtcvzezlhS6UEI5lJYl1LKl5nZwl6c1J-M/present#slide=id.g145d93b56e_0_105\">31</a> official code contributions to the <a href=\"https://janitor.technology/projects/\">5</a> supported software projects. Most of them went to Firefox, with Chrome a close second. (Note: If you’ve made a contribution using the Janitor, please tell me, they’re hard to keep track of!)</p>\n<p>Thank you so much for all your enthusiasm and help. It’s been an incredible journey so far, but the most exciting is what’s yet to come.</p>\n<h2>What’s Next</h2>\n<p>At Mozilla we’re currently in talks with Cloud9 to make their IDE even better for Firefox development. We’d love to build a dedicated <a href=\"https://ide.firefox.com\">ide.firefox.com</a> service (domain pending) that would be accessible to any developer in just a single click. Then we’d like to expand this concept to other projects, with additional services like <a href=\"https://ide.servo.org\">ide.servo.org</a> and <a href=\"https://ide.rust-lang.org\">ide.rust-lang.org</a> (domains pending) that should all work seamlessly with the Janitor. And to support these at scale, we’ll move your back-end Docker containers onto a more powerful cloud platform.</p>\n<p>Expect open source contributions to become ever easier with the Janitor, thanks to quick and intuitive UX integrations. For example, you should soon be able to send a patch for review directly from your IDE interface, or trigger an automated test run on your code, or even debug it step-by-step to look for bugs, and all these helpers will work simply with the click of a button.</p>\n<h2>Fixing Account Problems</h2>\n<p>A few things have changed in the way Janitor Alpha accounts are set up. A separate Cloud9 account is still required, but it appears that Cloud9 asks for your credit card now, even for free accounts. I don’t know why they chose to do this, but I’m sorry for that experience.</p>\n<p>If you’re having trouble getting the Janitor to work, please make sure that you’ve added both your Cloud9 username and Cloud9 SSH public key to your Janitor <a href=\"https://janitor.technology/account/\">account</a>. Adding your username will enable your Cloud9 account to work with the Janitor (this can take a short while, because I need to add you to our sponsored Team Account manually) while adding Cloud9’s SSH public key will authorize their IDE to access your Janitor environments via SSH (without that, the IDE part won’t work).</p>\n<h2>Janitor Events</h2>\n<p>Here is a recap of all Janitor-related events that happened since the last newsletter, or that will be coming soon.</p>\n<p>June 13-17, 2016: <a href=\"https://wiki.mozilla.org/All_Hands/2016_London\">Mozilla All Hands</a> in London</p>\n<ul>\n<li>I held two sessions where Mozillians could learn more about the Janitor. High five if you were there!</li>\n<li>Here are the <a href=\"https://docs.google.com/presentation/d/19YhJ_C4VhGtcvzezlhS6UEI5lJYl1LKl5nZwl6c1J-M/edit?usp=sharing\">slides</a> I presented.</li>\n<li>The room was not equipped for recording, but we shot a <a href=\"https://youtu.be/lOWt9-dB-Z4\">video</a> anyway.</li>\n</ul>\n<p>August 27, 2016: <a href=\"https://wiki.mozilla.org/Japan/Gecko_inside\">Gecko Inside</a> in Tokyo</p>\n<ul>\n<li>During the next monthly community event at Mozilla Japan, there will be a Firefox Hackathon.</li>\n<li>Mantaroh will tell attendees about the Janitor, and anyone interested will be able to try it.</li>\n</ul>\n<p>October 28-30, 2016: <a href=\"https://mozillafestival.org/\">MozFest</a> in London</p>\n<ul>\n<li>Each year, the Mozilla Festival is abuzz with exciting people and sessions.</li>\n<li>I offered to host a Firefox contribution workshop using the Janitor.</li>\n<li>I’ll let you know if they accept.</li>\n</ul>\n<p>And that’s it for today. If you missed any previous “Janitor News” email, they’re now permanently available <a href=\"https://janitor.technology/blog/\">here</a>.</p>\n<p>Stay tuned for more progress soon,<br>\nJan</p>"
},
{
"id": 130,
"title": "Janitor News #4",
"fancy_title": "Janitor News #4",
"slug": "janitor-news-4",
"posts_count": 1,
"reply_count": 0,
"highest_post_number": 1,
"image_url": null,
"created_at": "2016-05-01T07:00:00.000Z",
"last_posted_at": "2016-05-01T07:00:00.000Z",
"bumped": true,
"bumped_at": "2018-01-11T17:20:18.237Z",
"unseen": false,
"pinned": false,
"unpinned": null,
"visible": true,
"closed": false,
"archived": false,
"bookmarked": null,
"liked": null,
"tags": [
"published"
],
"views": 125,
"like_count": 0,
"has_summary": false,
"archetype": "regular",
"last_poster_username": "Jan",
"category_id": 9,
"pinned_globally": false,
"featured_link": null,
"has_accepted_answer": false,
"posters": [
{
"extras": "latest single",
"description": "Original Poster, Most Recent Poster",
"user_id": 1,
"primary_group_id": null
}
],
"post_body_html": "<p>Hello,</p>\n<p>This is your monthly burst of good news about <a href=\"https://janitor.technology\">the Janitor</a>.</p>\n<h2>Welcome to 27 new users!</h2>\n<p>We’re so happy to have you. Our small community of pioneers and cloud-development enthusiasts is growing fast, there are almost <a href=\"https://janitor.technology/data/\">100 of us</a> now.</p>\n<ul>\n<li>Look for the “Janitor Invite” email, it contains a link to your Janitor Alpha account.</li>\n<li>Reminder: The Janitor currently requires a Cloud9 premium feature. Please send me your <strong>Cloud9 username</strong> , so that I can request a free upgrade for you (otherwise, you’ll see errors like “SSH workspaces are a premium feature”).</li>\n</ul>\n<h2>Major Dockerfiles upgrade</h2>\n<p>We recently finished a complete <a href=\"https://github.com/janitortechnology/dockerfiles/commits/master\">overhaul</a> of all Docker images. Here is what changed:</p>\n<p>Across all images:</p>\n<ul>\n<li>Ubuntu 14.04 Trusty → 16.04 Xenial</li>\n<li>Git 1.9.1 → 2.8.2 (a lot faster, especially for large repositories)</li>\n<li>Node.js v5.6.0 → v6.1.0 (now with ES6! also npm 3.6.0 → 3.8.6)</li>\n<li>Clang 3.4 → 3.9</li>\n<li>Ability to use <code>sudo</code>\n</li>\n<li>Pre-opened <code>xterm</code> window in noVNC</li>\n</ul>\n<p>Firefox:</p>\n<ul>\n<li>Mercurial 2.8.2 → 3.7.3</li>\n<li>ESLint pre-configured (works with <code>./mach eslint path/to/sources</code>\n</li>\n<li>Latest moz-git-tools (upload patches with <code>git bz</code>, try them with <code>git push-to-try</code>)</li>\n</ul>\n<p>Chrome:</p>\n<ul>\n<li>Switched build configuration from GYP to GN</li>\n<li>Disabled SUID sandbox to allow running out-of-the-box</li>\n<li>Now with pre-compiled binaries in every image update</li>\n</ul>\n<p>Servo:</p>\n<ul>\n<li>Now able to run graphically in noVNC with <code>./mach run -w</code>\n</li>\n</ul>\n<p>KDE:</p>\n<ul>\n<li>noVNC goes straight to Plasma desktop, without Fluxbox</li>\n</ul>\n<p>I will also upgrade the Janitor’s Docker daemon to a newer version, but if everything goes as planned you won’t notice a thing (except more frequent image updates and even faster spawns).</p>\n<h2>Janitor events</h2>\n<p>We already had a few events about the Janitor, with more to come in the near future:</p>\n<p>April 2016: <a href=\"https://michaelkohler.info/2016/firefox-hackathon-zurich-april-2016\">Firefox Hackathon in Zurich</a></p>\n<ul>\n<li>Daniele showed these amazing <a href=\"http://mte90.github.io/Talk-Janitor/\">slides</a> about the Janitor.</li>\n<li>Participants used the Janitor to fix <a href=\"https://public.etherpad-mozilla.org/p/mozillach-firefox-hackathon-apr16\">10 bugs</a> in Firefox.</li>\n<li>Michael published a nice <a href=\"https://michaelkohler.info/2016/alpha-review-using-janitor-to-contribute-to-firefox\">blog post</a> about their experience.</li>\n<li>Thank you for all the great feedback!</li>\n</ul>\n<p>May 2016: <a href=\"http://jsconfbp.com\">JSConf Budapest</a></p>\n<ul>\n<li>Flaki hosted me at the Mozilla <a href=\"https://twitter.com/MozillaHU/status/731028512371552256\">Hackerlounge</a> there.</li>\n<li>I <a href=\"https://twitter.com/slsoftworks/status/731052374819770368\">demoed</a> the Janitor and Cloud9 IDE during all 3 days.</li>\n<li>We got very excited and exchanged a lot of ideas.</li>\n</ul>\n<p>June 2016: <a href=\"https://wiki.mozilla.org/All_Hands/2016_London\">Mozilla All Hands in London</a></p>\n<ul>\n<li>I will give a Platform Lightning Talk to pitch the Janitor.</li>\n<li>There will also be a full session about the Janitor later in the week.</li>\n<li>Please come by and say hi!</li>\n</ul>\n<p>That’s all I could fit into an email, but there is a lot more going on in our <a href=\"https://github.com/janitortechnology/janitor\">Janitor</a> and <a href=\"https://github.com/janitortechnology/dockerfiles\">Dockerfiles</a> repositories, and in our very own <a href=\"https://kiwiirc.com/client/irc.freenode.net/?#janitor\">IRC channel</a>.</p>\n<p>Until next time,<br>\nJan</p>"
},
{
"id": 131,
"title": "Janitor News #3",
"fancy_title": "Janitor News #3",
"slug": "janitor-news-3",
"posts_count": 1,
"reply_count": 0,
"highest_post_number": 1,
"image_url": null,
"created_at": "2016-04-01T07:00:00.000Z",
"last_posted_at": "2016-04-01T07:00:00.000Z",
"bumped": true,
"bumped_at": "2018-01-11T17:19:19.251Z",
"unseen": false,
"pinned": false,
"unpinned": null,
"visible": true,
"closed": false,
"archived": false,
"bookmarked": null,
"liked": null,
"tags": [
"published"
],
"views": 131,
"like_count": 0,
"has_summary": false,
"archetype": "regular",
"last_poster_username": "Jan",
"category_id": 9,
"pinned_globally": false,
"featured_link": null,
"has_accepted_answer": false,
"posters": [
{
"extras": "latest single",
"description": "Original Poster, Most Recent Poster",
"user_id": 1,
"primary_group_id": null
}
],
"post_body_html": "<p>Hello,</p>\n<p>This is your monthly burst of good news about <a href=\"https://janitor.technology\">the Janitor</a>.</p>\n<h2>Moar invites!</h2>\n<p>Thanks to a recent upgrade sponsored by <a href=\"https://c9.io\">Cloud9</a>, the Janitor can now accept more users to its Alpha. Hooray!</p>\n<ul>\n<li>If you’re not invited yet, you should receive a “Janitor Invite” email soon, with instructions on how to access your account.</li>\n<li>If you’re invited, but see this error: “SSH workspaces are a premium feature”, please send me your <strong>Cloud9 username</strong> so I can upgrade you for free, thanks to Cloud9’s new sponsoring (yes, they’re that awesome).</li>\n</ul>\n<h2>Optimizing the IDE (coming soon)</h2>\n<p>I’m currently working on adding new project-specific buttons to your Cloud9 IDE interface, allowing you to quickly:</p>\n<ul>\n<li>Update to the latest source code</li>\n<li>Build any changes you’ve made to it</li>\n<li>Run the project and try your changes live</li>\n<li>Send your changes to an automated test server</li>\n<li>Upload a patch to be reviewed by a project owner</li>\n</ul>\n<p>… all in a just single click! If you’d like to help, please reach out.</p>\n<h2>Signing in with GitHub (coming soon)</h2>\n<p>Enabling GitHub sign-in for the Janitor will have the following advantages:</p>\n<ul>\n<li>It’s a cool and fast way to sign in</li>\n<li>The Janitor can automatically grant access to all your public SSH keys</li>\n<li>It can also register a Janitor key, so you can push to GitHub more easily</li>\n</ul>\n<h2>Upgraded Docker images (coming soon)</h2>\n<p>The project-specific <a href=\"https://github.com/janitortechnology/dockerfiles\">dockerfiles</a> used by the Janitor will soon be based on a new common <a href=\"https://github.com/janitortechnology/dockerfiles/blob/master/ubuntu-dev/ubuntu-dev.dockerfile\">base image</a>, which will bring the following improvements to your contribution environments:</p>\n<ul>\n<li>Upgrade Ubuntu from 14.04 to 16.06</li>\n<li>Latest and fastest versions of Git and Node.js</li>\n<li>VNC sessions will already have an <code>xterm</code> open for you</li>\n<li>You will be able to use <code>sudo</code>\n</li>\n</ul>\n<p>That’s all I could fit into an email. To learn more about what’s going on with the Janitor, have a look at our <a href=\"https://github.com/janitortechnology/janitor/issues\">GitHub issues</a>, or come say hi in our <a href=\"https://kiwiirc.com/client/irc.freenode.net/?#janitor\">IRC channel</a>!</p>\n<p>Best,<br>\nJan</p>"
},
{
"id": 132,
"title": "Janitor News #2",
"fancy_title": "Janitor News #2",
"slug": "janitor-news-2",
"posts_count": 1,
"reply_count": 0,
"highest_post_number": 1,
"image_url": null,
"created_at": "2016-03-01T07:00:00.000Z",
"last_posted_at": "2016-03-01T07:00:00.000Z",
"bumped": true,
"bumped_at": "2018-01-11T17:19:01.825Z",
"unseen": false,
"pinned": false,
"unpinned": null,
"visible": true,
"closed": false,
"archived": false,
"bookmarked": null,
"liked": null,
"tags": [
"published"
],
"views": 126,
"like_count": 0,
"has_summary": false,
"archetype": "regular",
"last_poster_username": "Jan",
"category_id": 9,
"pinned_globally": false,
"featured_link": null,
"has_accepted_answer": false,
"posters": [
{
"extras": "latest single",
"description": "Original Poster, Most Recent Poster",
"user_id": 1,
"primary_group_id": null
}
],
"post_body_html": "<p>Hi there,</p>\n<p>Thanks a lot for being a pioneer in trying to change the way we do software development! The Janitor’s alpha version is doing great, and things are already shaping up fast toward the beta.</p>\n<p>It’s very exciting to see this vision becoming reality, and you’re making it happen. The Janitor currently has 31 confirmed users (15 on waitlist) and supports 6 large open source projects (<a href=\"https://janitor.technology/data/\">source</a>).</p>\n<h2>Scaling to Multiple Servers</h2>\n<p>The back-end code is currently being rewritten to use the <a href=\"https://docs.docker.com/engine/reference/api/docker_remote_api/\">Docker Remote API</a>. This will allow exciting improvements, like running multiple Docker servers in parallel, and more control for you on your <a href=\"https://janitor.technology/contributions/\">contributions</a>.</p>\n<p>Warning: I will do my best to make this transition seamless, but there is a slight risk of losing some containers in the process. <strong>Please back up your work!</strong></p>\n<h2>Project Dockerfiles</h2>\n<p>All the projects available on the Janitor have a <a href=\"https://docs.docker.com/engine/reference/builder/\">Dockerfile</a> that describes a Linux environment suitable for their developers. Writing one is basically all it takes to add a new project to the Janitor. A few examples:</p>\n<ul>\n<li>\n<a href=\"https://github.com/janitortechnology/dockerfiles/blob/master/firefox.docker\">Firefox dockerfile</a> / <a href=\"https://janitor.technology/projects/firefox/\">build times</a> / <a href=\"https://imagelayers.io/?images=janx%2Ffirefox:latest\">image size</a>.</li>\n<li>\n<a href=\"https://github.com/janitortechnology/dockerfiles/blob/master/chromium.docker\">Chrome dockerfile</a> / <a href=\"https://janitor.technology/projects/chromium/\">build times</a> / <a href=\"https://imagelayers.io/?images=janx%2Fchromium:latest\">image size</a>.</li>\n<li>\n<a href=\"https://github.com/janitortechnology/dockerfiles/blob/master/thunderbird.docker\">Thunderbird dockerfile</a> / <a href=\"https://janitor.technology/projects/thunderbird/\">build times</a> / <a href=\"https://imagelayers.io/?images=janx%2Fthunderbird:latest\">image size</a>.</li>\n<li>\n<a href=\"https://github.com/janitortechnology/dockerfiles/blob/master/servo.docker\">Servo dockerfile</a> / <a href=\"https://janitor.technology/projects/servo/\">build times</a>.</li>\n<li>\n<a href=\"https://github.com/rcatolino/kdesrcbuild-docker/blob/master/kde.docker\">KDE dockerfile</a> / <a href=\"https://janitor.technology/projects/kde/\">build times</a>.</li>\n</ul>\n<h2>More Invites Coming Soon</h2>\n<p>Invites used to work like this: Users created a Cloud9 account, I asked Cloud9 to upgrade them to premium for free, and finally I sent out a Janitor invite. While this was great to get started quickly, it obviously doesn’t scale. I’m currently working with Cloud9 on a better solution that won’t require premium accounts.</p>\n<p>It goes without saying that the Janitor will always be <strong>free for open source</strong> contributors, but in the meantime if you already have a <a href=\"https://c9.io/pricing/webide\">Cloud9 premium</a> account, please let me know (I can invite you right now).</p>\n<p>That’s it for today! If you have any question, or if you’d like to help, please reach out. The Janitor is <a href=\"https://github.com/janitortechnology/janitor\">on GitHub</a>, and we also have an <a href=\"https://webchat.freenode.net/?channels=janitor\">IRC channel</a> on freenode.</p>\n<p>Keep in touch,</p>\n<p>Jan</p>"
},
{
"id": 133,
"title": "Janitor Alpha is here!",
"fancy_title": "Janitor Alpha is here!",
"slug": "janitor-alpha-is-here",
"posts_count": 1,
"reply_count": 0,
"highest_post_number": 1,
"image_url": "https://www.reactiongifs.us/wp-content/uploads/2013/07/its_working_star_wars.gif",
"created_at": "2016-02-01T07:00:00.000Z",
"last_posted_at": "2016-02-01T07:00:00.000Z",
"bumped": true,
"bumped_at": "2018-01-11T17:18:15.299Z",
"unseen": false,
"pinned": false,
"unpinned": null,
"visible": true,
"closed": false,
"archived": false,
"bookmarked": null,
"liked": null,
"tags": [
"published"
],
"views": 122,
"like_count": 0,
"has_summary": false,
"archetype": "regular",
"last_poster_username": "Jan",
"category_id": 9,
"pinned_globally": false,
"featured_link": null,
"has_accepted_answer": false,
"posters": [
{
"extras": "latest single",
"description": "Original Poster, Most Recent Poster",
"user_id": 1,
"primary_group_id": null
}
],
"post_body_html": "<p>Good news everyone!</p>\n<p><a href=\"https://janitor.technology\">https://janitor.technology</a> is now open for business, which means that you can use it to hack on cool projects like Firefox, Thunderbird and Chrome, and all directly from your browser!</p>\n<p><img src=\"https://www.reactiongifs.us/wp-content/uploads/2013/07/its_working_star_wars.gif\" alt=\"Obligatory celebration GIF\" width=\"400\" height=\"170\"></p>\n<h2>You’re invited!</h2>\n<p>You should receive a follow-up email with instructions on how to access your free and unlimited Janitor account.</p>\n<p>Reminder: This currently requires a Cloud9 premium account. If you still do not have one, please <a href=\"https://c9.io/web/sign-up/free\">create a free Cloud9 account</a> and send me your <strong>username</strong> , so that I can request a free premium for you. Cloud9 has offered to upgrade all Janitor users for free, which is awesome and insanely generous!</p>\n<h2>What is Janitor?</h2>\n<p><a href=\"https://janitor.technology\">The Janitor</a> allows you to develop software using only a web browser, without having to install any tools or do any compiling on your own computer.</p>\n<p>It works by creating personalized, full-featured development environments (Docker containers) for any given project, and lets you access these environments via <a href=\"https://c9.io\">Cloud9 IDE</a> for code writing, or via <a href=\"https://kanaka.github.io/noVNC/screenshots.html\">noVNC</a> for a graphical desktop interface.</p>\n<p>More details in this <a href=\"https://youtu.be/5sNDMIh-iVw\">excellent demo video</a> we made with my good friend Baptiste.</p>\n<h2>Supported projects</h2>\n<p>You can hack &amp; build the following projects in Cloud9 IDE, and run them graphically in noVNC (using right-click to launch XTerm):</p>\n<ul>\n<li>Firefox</li>\n<li>Thunderbird</li>\n<li>Chrome</li>\n<li>Cozy (early developer preview)</li>\n</ul>\n<p>Also, adding a new project is as simple as writing a <a href=\"https://www.digitalocean.com/community/tutorials/docker-explained-using-dockerfiles-to-automate-building-of-images\">Dockerfile</a> for it! If there is a particular software project that you’d like to see on the Janitor, let’s work together and make it happen.</p>\n<p>Happy hacking!</p>\n<p>Jan</p>"
},
{
"id": 134,
"title": "Janitor News #1",
"fancy_title": "Janitor News #1",
"slug": "janitor-news-1",
"posts_count": 1,
"reply_count": 0,
"highest_post_number": 1,
"image_url": null,
"created_at": "2016-01-01T07:00:00.000Z",
"last_posted_at": "2016-01-01T07:00:00.000Z",
"bumped": true,
"bumped_at": "2018-01-11T17:17:40.915Z",
"unseen": false,
"pinned": false,
"unpinned": null,
"visible": true,
"closed": false,
"archived": false,
"bookmarked": null,
"liked": null,
"tags": [
"published"
],
"views": 130,
"like_count": 0,
"has_summary": false,
"archetype": "regular",
"last_poster_username": "Jan",
"category_id": 9,
"pinned_globally": false,
"featured_link": null,
"has_accepted_answer": false,
"posters": [
{
"extras": "latest single",
"description": "Original Poster, Most Recent Poster",
"user_id": 1,
"primary_group_id": null
}
],
"post_body_html": "<p>Happy 2016 everyone!</p>\n<p>I hope you had a great 2015, and I wish you all the best for this upcoming year.</p>\n<ol>\n<li>Alpha version is coming!</li>\n</ol>\n<p>With this, I’ll finally be able to send each of you an invite for a free and unlimited account on <a href=\"https://janitor.technology\">https://janitor.technology</a>.</p>\n<p>This past month I implemented basic support for Dockerfile instructions, successfully automating the creation of Docker images &amp; containers. This means that the projects listed on <a href=\"https://janitor.technology\">https://janitor.technology</a> will generally stay “fresher”, and that you’ll be able to open them in fully-functional development environments with just a single click!</p>\n<p>To follow my progress on this upcoming milestone: <a href=\"https://github.com/janitortechnology/janitor/milestones/alpha\">https://github.com/janitortechnology/janitor/milestones/alpha</a></p>\n<ol start=\"2\">\n<li>Free Cloud9 premium accounts</li>\n</ol>\n<ul>\n<li>Please create a free cloud9 account at <a href=\"https://c9.io/web/sign-up/free\">https://c9.io/web/sign-up/free</a>\n</li>\n<li>Please send me your cloud9 username, so I can request a free premium for you</li>\n</ul>\n<p>The Janitor uses Cloud9 IDE to let you hack on Firefox / Chromium / Thunderbird / etc, by automatically setting up SSH workspaces in your <a href=\"https://c9.io\">https://c9.io</a> profile.</p>\n<p>For this to work, I recently noticed that you need a cloud9 premium account (thanks Daniele and Etienne for checking!). Luckily, you won’t have to pay anything, because the Cloud9 team has generously offered to upgrade all Janitor users to premium for free!</p>\n<ol start=\"3\">\n<li>Useful links</li>\n</ol>\n<p>You can follow progress on the Janitor by visiting:</p>\n<ul>\n<li>The Janitor: <a href=\"https://janitor.technology\">https://janitor.technology</a>\n</li>\n<li>The project on GitHub: <a href=\"https://github.com/janitortechnology/janitor\">https://github.com/janitortechnology/janitor</a>\n</li>\n<li>The currently open issues: <a href=\"https://github.com/janitortechnology/janitor/issues\">https://github.com/janitortechnology/janitor/issues</a>\n</li>\n</ul>\n<ol start=\"4\">\n<li>Project pipeline</li>\n</ol>\n<p>I’m aiming to make the Janitor the fastest and easiest way to contribute to, in order or priority:</p>\n<ul>\n<li>Firefox</li>\n<li>Google Chrome</li>\n<li>Thunderbird</li>\n<li>Cozy</li>\n</ul>\n<p>With hopefully many more to come! (Once everything is in place, adding support for a project will be as quick as writing a new Dockerfile.)</p>\n<p>Best,</p>\n<p>Jan</p>"
},
{
"id": 135,
"title": "Janitor News #0",
"fancy_title": "Janitor News #0",
"slug": "janitor-news-0",
"posts_count": 1,
"reply_count": 0,
"highest_post_number": 1,
"image_url": null,
"created_at": "2015-11-01T07:00:00.000Z",
"last_posted_at": "2015-11-01T07:00:00.000Z",
"bumped": true,
"bumped_at": "2018-01-11T17:17:24.077Z",
"unseen": false,
"pinned": false,
"unpinned": null,
"visible": true,
"closed": false,
"archived": false,
"bookmarked": null,
"liked": null,
"tags": [
"published"
],
"views": 125,
"like_count": 1,
"has_summary": false,
"archetype": "regular",
"last_poster_username": "Jan",
"category_id": 9,
"pinned_globally": false,
"featured_link": null,
"has_accepted_answer": false,
"posters": [
{
"extras": "latest single",
"description": "Original Poster, Most Recent Poster",
"user_id": 1,
"primary_group_id": null
}
],
"post_body_html": "<p>Hi all,</p>\n<p>Thanks a lot for subscribing to the Janitor! Your interest has been very encouraging.<br>\nHere are a few updates on what’s been going on:</p>\n<h2>First invites coming soon!</h2>\n<p>In the near future, I will send each of you an invite for a free and unlimited account on <a href=\"https://janitor.technology\">https://janitor.technology</a>.</p>\n<p>Before I can do this, I need to finish up these few things:</p>\n<ul>\n<li>Auto-provision Docker instances (today I’m doing it manually)</li>\n<li>Make the graphical remote desktop secure (a simple authenticated HTTPS proxy will do)</li>\n</ul>\n<h2>Useful links</h2>\n<p>You can follow progress on the Janitor by visiting:</p>\n<ul>\n<li>The Janitor: <a href=\"https://janitor.technology\">https://janitor.technology</a>\n</li>\n<li>The project on GitHub: <a href=\"https://github.com/janitortechnology/janitor\">https://github.com/janitortechnology/janitor</a>\n</li>\n<li>The currently open issues: <a href=\"https://github.com/janitortechnology/janitor/issues\">https://github.com/janitortechnology/janitor/issues</a>\n</li>\n</ul>\n<h2>Project pipeline</h2>\n<p>I’m aiming to make the Janitor the fastest and easiest way to contribute to, in order or priority:</p>\n<ul>\n<li>Firefox</li>\n<li>Google Chrome</li>\n<li>Thunderbird</li>\n<li><a href=\"http://Cozy.io\">Cozy.io</a></li>\n</ul>\n<p>With hopefully many more to come! (Once everything is in place, adding support for a project will be as quick as writing a new Dockerfile.)</p>\n<h2>Feedback welcome!</h2>\n<p>If you have any questions about the Janitor, ideas to share, or if you’d like to help out, feel free to shoot me an email!</p>\n<p>Thanks again for your interest in the Janitor!</p>\n<p>Best,<br>\nJan</p>"
}
],
"data": {
"updated": 1521028125451,
"pull-time": [
[
1515682927898,
290
],
[
1515689969299,
2393
],
[
1515690625189,
1236
],
[
1515692335776,
1414
],
[
1515692452374,
1497
],
[
1515710598858,
1518
],
[
1515714967049,
1392
],
[
1515758303754,
1250
],
[
1515774725457,
1215
],
[
1516113494675,
1784
],
[
1516380381609,
1705
],
[
1517235446735,
2242
],
[
1517235446939,
1790
],
[
1517242219038,
2493
],
[
1517242219355,
1984
],
[
1517242889719,
1333
],
[
1517243013008,
1693
],
[
1517243013282,
1520
],
[
1517243422849,
1752
],
[
1517243423199,
1349
],
[
1517243488247,
1545
],
[
1517243488574,
1463
],
[
1517243558452,
1355
],
[
1517243558801,
1360
],
[
1517243677517,
1506
],
[
1517243816308,
1571
],
[
1517243816719,
1700
],
[
1517243887169,
1834
],
[
1517243887429,
1808
],
[
1517243975950,
2175
],
[
1517243976201,
2072
],
[
1517244100256,
1417
],
[
1517244194867,
1262
],
[
1517244270391,
1932
],
[
1517244332320,
2051
],
[
1517244332660,
2015
],
[
1517244415163,
1538
],
[
1517244415526,
1423
],
[
1517244511718,
1873
],
[
1517244627050,
1412
],
[
1517244627384,
1396
],
[
1517244705853,
1914
],
[
1517244705976,
1152
],
[
1517245019405,
2046
],
[
1517245019667,
1438
],
[
1517245207442,
1714
],
[
1517245288226,
1485
],
[
1517245288633,
1619
],
[
1517245381283,
1817
],
[
1517245381627,
1744
],
[
1517245480180,
1442
],
[
1517245480532,
1401
],
[
1517245554102,
1635
],
[
1517245554371,
1589
],
[
1517245677758,
1567
],
[
1517245678107,
1526
],
[
1517245750646,
1439
],
[
1517245751048,
1511
],
[
1517245812925,
1359
],
[
1517245813308,
1427
],
[
1517246107670,
1530
],
[
1517246219912,
1628
],
[
1517246220236,
1666
],
[
1517246293860,
1496
],
[
1517246359245,
1447
],
[
1517246359378,
1286
],
[
1517246471880,
1584
],
[
1517246472215,
1549
],
[
1517246554905,
1496
],
[
1517246555168,
1450
],
[
1517246633484,
1409
],
[
1517250351212,
1660
],
[
1517250351414,
1524
],
[
1517250417804,
1373
],
[
1517250570397,
1750
],
[
1517250570557,
1498
],
[
1517250647050,
1777
],
[
1517253983603,
1578
],
[
1517253983951,
1590
],
[
1517260514839,
1380
],
[
1517332381392,
1676
],
[
1517405835695,
1854
],
[
1517405836378,
1895
],
[
1517407240739,
1731
],
[
1517407241758,
2359
],
[
1517407614750,
1496
],
[
1517407615802,
457
],
[
1517407736711,
1571
],
[
1517407737244,
1740
],
[
1517407829655,
1774
],
[
1517407830185,
1901
],
[
1517407914342,
1688
],
[
1517408083925,
1527
],
[
1517408084599,
1802
],
[
1517415103339,
2133
],
[
1517415104022,
2135
],
[
1517415193731,
1526
],
[
1517415257403,
1501
],
[
1517415257943,
1755
],
[
1517415452973,
1586
],
[
1517415493753,
459
],
[
1517415657893,
1529
],
[
1517415658561,
1703
],
[
1517415872770,
1508
],
[
1517415873033,
1425
],
[
1517415947913,
1637
],
[
1517415948213,
1594
],
[
1517427994495,
11715
],
[
1517477308840,
2802
],
[
1520606998440,
2132
],
[
1521028125451,
1858
]
]
}
},
"azure": {
"credentials": {
"clientId": "",
"clientSecret": "",
"tenantId": "",
"subscriptionId": ""
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment