likwid/docs/admin/backup.md
Marco Allegretti 8e94bcf577 .dev, repo, backend, +4: add 483 files
Verified changes:
- add .dev/dev-token.txt
- add .dev/pids/backend.pid
- add .dev/pids/frontend.pid
- add .env.example
- add .gitignore
- add CONTRIBUTING.md
- add DEPLOYMENT.md
- add README.md
- add WORKFLOW.md
- add backend/.env.example
- add backend/.sqlx/query-00649c07335338a85657781bfe97b299039883e1170687d60047ced9f3271b8f.json
- add backend/.sqlx/query-00b25a5d76ada968ebb490cdfa9b30d82de7402bda296872eb4a366bd2942640.json
- add backend/.sqlx/query-00c90349026ba6858b28e413cff2e1b71f87d06dea5759fb6159da22a995e341.json
- add backend/.sqlx/query-00e2f11aa7f20e01f9a9de158b81fbcd5a33511135ce3e05aea3c8c8846239b3.json
- add backend/.sqlx/query-03706c8c7d9db6d3112ccbd27fd026308c5a03a923f53331468cc899eff9a08d.json
- add backend/.sqlx/query-03b9920a00f57083543abd69b18965bdb37d21ba503691cd054ed06f6807d7f7.json
- add backend/.sqlx/query-0474f023ed456e56e6a744f8a94e4afc361456a4979e1d14378d1f475c1b2192.json
- add backend/.sqlx/query-04c1f2a6a596b9cda5a0744b941777916a3aa3c03445ce59a5a3a69f869078de.json
- add backend/.sqlx/query-0569967ce647a065b60b93a233bd222d7dc8aef1eeffec8796dae06968faf08d.json
- add backend/.sqlx/query-05ab322014e6f15af99d2af3c118f0cf64b06f311b17ff3c7197d949bab2a580.json
- add backend/.sqlx/query-05d8db279bba917c2456ca3427876caefc67b9b6a3d9031ab43f998462a75a58.json
- add backend/.sqlx/query-06415d7e9b1b54bc96b8c35b6c92649ffe74f1d9047c783810c344c75f3b10af.json
- add backend/.sqlx/query-06c276dfa8e0d19cf539d9abdd4699b387c4a8435c11ac1fe7c4a53d5c231ba6.json
- add backend/.sqlx/query-075e3c636c51526e7ceab5540cccd87e52939da3a48e4a544fe67457e8de6962.json
- add backend/.sqlx/query-098ff8cc94787edf79a98396716cb5296547c407516489b5b873dadfa360f91e.json
- add backend/.sqlx/query-09e0a994d85ba6589db1c989f193ef10e081ccc560031a056e80cb19436f5e8e.json
- add backend/.sqlx/query-0cec90f8ac9b48f22ca24330afb16c9308998ddd30404d2a1eb38bd8d0fa46be.json
- add backend/.sqlx/query-0d3765f6d5135140d623f9dc706b6907686b98158d775978709db26486109d8b.json
- add backend/.sqlx/query-0d79d19ab27c1962afc4ef802f386e160c4a555ca59bade20c901d7b8be99d0e.json
- add backend/.sqlx/query-0e518900101ca3ba736e18a911a07759368f0481b3c0dcd4702c077cdadb7ef0.json
- add backend/.sqlx/query-0ea2a972775b14b5a22edb7b7a81f414993d8153aebd7121acbcbd54257f32bf.json
- add backend/.sqlx/query-0ef338c61969938be731e6187b77c4d7454c409079ecc073aa24a10d339b47f1.json
- add backend/.sqlx/query-10649f88f5a0055a0aa23cad37d0b51bd24c35ab290c412bad1286c0baaefd56.json
- add backend/.sqlx/query-10a632674ed7d086243d8a31abcb4935677106be2937daf876b01434fc07d293.json
- add backend/.sqlx/query-117802a0a1de4ec2e5e3e7d2fd557421991b07876c7b42760bbe756b979d0e96.json
- add backend/.sqlx/query-132ee5d7ab197b3a1d3bce2740f419e3cc2311e3cf0bbd0dfe821eebb4ca4fe0.json
- add backend/.sqlx/query-1414a9b0037bc888daa0b1215e88a78b20c7e2c614760f36307a248be45203ff.json
- add backend/.sqlx/query-14514b4a260abf4b93429a3d841bea19693db589ad668279d7361f499fe7e408.json
- add backend/.sqlx/query-150c49c9bd09af829b05abd06d6217aec3ed104f6286e2fc6bd741512cd254ff.json
- add backend/.sqlx/query-155f20f35f5b4df59e1a53d0aa30f2994b0a6f76fcd1ff443a6bbe13e3d41339.json
- add backend/.sqlx/query-1648eb605182a87a4fadd7158f7012dfe8011a56d63ea069a53bfd697bcdd166.json
- add backend/.sqlx/query-171bd1d2e58286b428275404fbaaaedab5d2ee9d3c0b76e3182b6fd48493cdc4.json
- add backend/.sqlx/query-174c2a9d861710b570536d1350b4e70b13a9290b222eb89ce753a5702de63f0a.json
- add backend/.sqlx/query-177d2a77cdaaa75e32bae953e520231ce713d5fb5f65f533660c773417be085a.json
- add backend/.sqlx/query-18c0fb05da45a3eea514f660bc4ac4d6aca71442645666a9c08db8f2a564ff6c.json
- add backend/.sqlx/query-18f2bb2a5454308a0ca13ad574947eaa83e52ab32ba48687f54cdce41b34a141.json
- add backend/.sqlx/query-1ad83f237ca18e09dfac8f654b6befac12576bf30f35f3bf626b7ccf46a4fb94.json
- add backend/.sqlx/query-1cf0926848f8f1fc1f62337b344f06d86408f94450fe0ed80a44268657e92c06.json
- add backend/.sqlx/query-1dcd2fc713e43bb6e785befc420fe94db65d42df35bd8015c550c2f8666664e7.json
- add backend/.sqlx/query-1dedda4e97c32d56c88d29a247f788e5aac67cc9bc59fdd52b40926af3e5a671.json
- add backend/.sqlx/query-1efa9b54dff5200841ab35a40e525a8d0da40edca89aa78cd168ae3e854eabc2.json
- add backend/.sqlx/query-1fd0e024053913d7598c5cdb19f407cfa7fef149553e18efc9e5149dd77e7f1c.json
- add backend/.sqlx/query-20414e126202ce893b8e967c585ac6ee9c6cc869033bbe7bbf959d80dcedf82b.json
- add backend/.sqlx/query-21412c1fff5f48e1ca0a5a67c49180efba50cdbc247a467474296f00a4f1f0f2.json
- add backend/.sqlx/query-222ef714ee6f0d715f09643cff679f1c9d5132051dea4cf1f809f06470ed9b44.json
- add backend/.sqlx/query-2376b5dff203895eb0b78454a323beb8a90d4ea20ca201226d4b228a2b846c4f.json
- add backend/.sqlx/query-274cc3e62a3bc6659ae9e652d6ac15076f76a5fb7acad44f5e853678cfa2abf3.json
- add backend/.sqlx/query-27723721585f30329494e2c80e4851b65cd980780e4b756019f73df0f9d28061.json
- add backend/.sqlx/query-28654edaba50887bd4c7f698e538ed9ec70543b1ba6d0ecc5b675a1040148b6a.json
- add backend/.sqlx/query-2a13dcd10626c05bfed533ba131e46f2ba7c132c9e5d58afe30ba11179096bce.json
- add backend/.sqlx/query-2a288385b0b4f402803e22171965bedeeb6e40308d09f4a0d4f67258b11f7cd2.json
- add backend/.sqlx/query-2a7e168921469392cdde35401ab602fdb281f995ad75050af27a4130c311a920.json
- add backend/.sqlx/query-2b38c2a93dda00a2ccd0ffe3d2cd83b9cf41d444b6f09b211a57dd6689a9e27e.json
- add backend/.sqlx/query-2c9bb8a5dca54ef476b2908dfad34371f6f34e4a8500f855d01209d32840f683.json
- add backend/.sqlx/query-2ca4dcd48f294e84793ad46b960657a7d30cf790418baf4feab371fb45687627.json
- add backend/.sqlx/query-2cb27026dc438da39c4132e9679d8312ed4909560135b5660c82e06ed61e6436.json
- add backend/.sqlx/query-2d6f151a2ed11e1a6efecfe1c1cd0242e3e28942cfbae4db71b4d9d709f96522.json
- add backend/.sqlx/query-2f7f1f0d1960020529d167240c56abc5bcc6fcd5615890279d2bafcde467fe61.json
- add backend/.sqlx/query-2f80cf2d27e9af290578740b2752a6a0d8c41e62aab523e16cc8cf123e59166f.json
- add backend/.sqlx/query-31639da003249b784d3603126cb36a1ea592bd819b8f43d9cbd192d7d405c44d.json
- add backend/.sqlx/query-3167dfbfa487a695ad0953ed59b206fe16833cfe890fdae3fd74d6fe2d11ced5.json
- add backend/.sqlx/query-3205e4cb752317923752ee9ace04a93ada7aa8cbfc97a87f9ddf6376dc102146.json
- add backend/.sqlx/query-3271a11a6d1ad3cc05deda6d3e33bd350180c0b20da49b88c5bc04d5f06eb927.json
- add backend/.sqlx/query-32e740982952a1d3756117f496bcff626f7bcb438a50fa8eef80e013a84e8048.json
- add backend/.sqlx/query-3316c52a6ddc9891f4482e6f5df622147b1be87d0723bf709d6d7def94eb1a0c.json
- add backend/.sqlx/query-33281e190171ace099ef3209d49ac42b6527824947520336d7d11594ab56b265.json
- add backend/.sqlx/query-34ac1a3b360d0e99c80d59aad7497794803b0ca05cb498e7715344bc9d512084.json
- add backend/.sqlx/query-35b2d2fb4f7db1ce97557c01de71c96e64862e3955e1e2d5996581eb4b871f3d.json
- add backend/.sqlx/query-3647ec42782a77237f075f172b4d435ac8d6325e60696018386ef1509e499a6d.json
- add backend/.sqlx/query-39926d0308364c2a13c987adbc8b364253e9d8d350d69a1e1d3efd1c2e424d81.json
- add backend/.sqlx/query-3a395c6e9a23a87fbfa1b3d7a06fbe907b32e3cfb6af327cec1533b7762bd4cd.json
- add backend/.sqlx/query-3a8154bdd76daa157200feea1cce96d67bdb7b7c824088ca625105e96495938f.json
- add backend/.sqlx/query-3b034411e6338ddaeae97589f0d0ab13cd674f852ad61b643a2e593d252767f1.json
- add backend/.sqlx/query-3c118e418b94a2d609cde609b53fbbb1a0055fe46397599f7c5eade17b0a5360.json
- add backend/.sqlx/query-3c323153097726bf967b733fc7cb40173a1c64a4b7535a904445e5d02dbe2f0f.json
- add backend/.sqlx/query-3c47d27c939cb21fbcc621825d1ef59d5284c3b6db07e2b11d772fefbcf1650b.json
- add backend/.sqlx/query-3c769ff42e6b6e2df033fa05cf6d8ae1e9fba6320943f65c95613f56a8ea2a13.json
- add backend/.sqlx/query-3d523a0728ea6e9df275520675e3caab1963c61d5d6c3ad468cc51568d4bb5f8.json
- add backend/.sqlx/query-3d9153f242fa24637d71a4b4f0a76edee15892248acb6b281ffdbab11a4bff0f.json
- add backend/.sqlx/query-3e0e0fe2c4e51b68025965560101643e7e035b782b1cd0d110803664c5831fe3.json
- add backend/.sqlx/query-3e7754fe4fe21c7fc50435ad222ed68617f8e8c4f2a21b202ee95d6f76ae0d32.json
- add backend/.sqlx/query-403544e4819bc7bcc4ac51c997fb9ec74c3b3fa2c6f2b170ab5b8c8c1d9c65d4.json
- add backend/.sqlx/query-41273682b6b15534294e7f90907c7a516cb658e276a50b44f72a2b739ee9e04b.json
- add backend/.sqlx/query-42e0fab065d541e407129d44f86f1d1d46387494b992c81f7a334e72c42c98ca.json
- add backend/.sqlx/query-43a864f79078c6891186f1d20600983ee080a7033137c0d715880cf20fc7776a.json
- add backend/.sqlx/query-4619c7159d4bec14be35a308b0a867e3d5b0687a46a456adf6e8dcd1582d3849.json
- add backend/.sqlx/query-47ea00355af927b41b9c39e55791042049a4bea2d1fab669b4ef6fee3f7a3497.json
- add backend/.sqlx/query-47ea0156899876339e02f4769e666c24d5d0fee1f18869d7adcb4aeb007076c8.json
- add backend/.sqlx/query-484e7ea64028000ccadd135f9806fd190f860d8ac1cd1c56828fa5be279f57c9.json
- add backend/.sqlx/query-4a92221917041b95e9a27e511ca70b404313e7dba1faf19bb1eb1347b2208587.json
- add backend/.sqlx/query-4aa9e85bb2280a67f94914b3de749b262b16223d467464079ce36509b857f306.json
- add backend/.sqlx/query-4cc6b7b3343bf2afda642707ede4a1e1df7904a137b6b3c34bfdda71088516b7.json
- add backend/.sqlx/query-4ce35bd4ce5c2dde738b87eb3aa45c21926d67e156fda5cbdcaa5e1db2ebe785.json
- add backend/.sqlx/query-4e324f0141e12a57df99f729cccf6133014b6669bda8d3b75ca07bb2a47567b2.json
- add backend/.sqlx/query-4ed6eff19ec25d1e627ff27d656934c56ac363260ba540fc0d225b7ce7da48d3.json
- add backend/.sqlx/query-4f6d0f4d874780e2729f6e6f2e50ba35dddf8cfaa1de0f4213e2ca70aad2d3cc.json
- add backend/.sqlx/query-4fbe1a8019228d78f6b2361fd7f363b8f4ee2e63104c7a824e289d13b4814e51.json
- add backend/.sqlx/query-502a8e2b5a59105bcc6d1d668d47b04d7978dde7265c76ae37915f8ae8842033.json
- add backend/.sqlx/query-50c17bb1a4d6b249e39d8d13c2ac7d346bfc2476e7c983223e9b4366b2f08abd.json
- add backend/.sqlx/query-522c64c31796d1d85b4ce6a6cbac86d0b440c2eb54d14fd700fd005848e4b146.json
- add backend/.sqlx/query-5303a6a8c505e05aca3e158cf4aae36c2ad5a98374032d3eb604363f777def7e.json
- add backend/.sqlx/query-536866ecf3349598d172c0011a0970a0f7926658d166a4940fca89cabaf3d514.json
- add backend/.sqlx/query-53e54a4fe0344eb04f52ac7d737663b824bbfc3c65e3cebd23ff3dfa5a89fbe8.json
- add backend/.sqlx/query-54262c9a793fdbf907f81f6974d4fa57bbd4140b6bd9fc84b27f4abcdc9cefc4.json
- add backend/.sqlx/query-563efcefcb6880c075c16d278b11631166fc30678c161bdff1a68b8f491bf335.json
- add backend/.sqlx/query-56a3e0906a82b4c7df2d066194300d7c5c704562990cf7d835541083884d192e.json
- add backend/.sqlx/query-56be8018a90784cb6868af7bd4a7dff4e1e8ddf09e6d08b97c2e0cc3a6dec0e5.json
- add backend/.sqlx/query-598da730fbfa2531c8882c1456f8e1a13c6a99c177109e6a88b44e66e923e8f0.json
- add backend/.sqlx/query-599b54e38d5be790010a42f8db1cdd210506243f533fe02b90974c51d878ef52.json
- add backend/.sqlx/query-5ae8c8c64a800b7735ab381b7ff73988ec35b8839beb5f108400e1e85295aaa8.json
- add backend/.sqlx/query-5b3990eadd408f017c3f97f9eec54ebf9d4b17e8f52b7be7e8d4f7a4d4303045.json
- add backend/.sqlx/query-5bf7ea39ce22f5466a08746b98091b897f35a72561e668a1643d63c9427a96ca.json
- add backend/.sqlx/query-5c54f1d4567d6c7baf6969687c7f19f71dfdcacebdcbcb5284b0243cc12895e2.json
- add backend/.sqlx/query-5d369c593b73b9c9835ef79206367824f5cc656cb8d93d3a4af3262c73cf88ad.json
- add backend/.sqlx/query-5ea4e4b2dafd654c306e4507faaa1d7112461cedba992f8d2ddc923c42cd7b6b.json
- add backend/.sqlx/query-5fd1b28bc068dc4592e1c6a58bd348f4d9feae00d29ea677ae643593dda852a4.json
- add backend/.sqlx/query-5ff99236c732a045c53789220aa54f9f494aa49b1b55b207ba777e9cbc2e8ddd.json
- add backend/.sqlx/query-6098a745505990aea4405d2ab48fd8e4839518f714261bc8fc1cc01fe298ffd1.json
- add backend/.sqlx/query-6252da4b5dd1636fb1aa75dc10bd8ede8f9b12fdb80b0edaa999c321993233ae.json
- add backend/.sqlx/query-633a36b68dd39b0e443b169ac7bcfeebbd2e8b76a09791f8f3bd5190bdc569e3.json
- add backend/.sqlx/query-63426c52f6016b030b23a562fe2aa08793ecb5e3a3a24f82bc7666cd8cf5cd68.json
- add backend/.sqlx/query-641be20c2834a02a49f6c658663d73fb5779eb14e36cf13a9ecbfa61440c5332.json
- add backend/.sqlx/query-65a8781dff58442082a16c731be5acfdb3c61ad599b2031433be6c554821df05.json
- add backend/.sqlx/query-660253bf0225d065ae50eab8625e1f9662779997acef345182ce23e96efde2c3.json
- add backend/.sqlx/query-68f175d74997d4cfc1ce98756bb32d8f7d3466d5ea71f137ac101ebd07e0073e.json
- add backend/.sqlx/query-6a6bec68b35012df41e6bb99b5afc11a90e3404fa29698fb04fa3ad18ad2025b.json
- add backend/.sqlx/query-6b3fef1781daf9672ad11cbc1e2d84e536ff7ee9b3cef4d5f517a2ed27c586c4.json
- add backend/.sqlx/query-6d1c9e2cb972dbc9df0a72034cf0390e72bb8baecd2b09d8ae305ab3844439a0.json
- add backend/.sqlx/query-6dc1dc04d2084400be320aa33507746a38814325f3525dd0f38e05c6a64f1f7a.json
- add backend/.sqlx/query-6e44a5f3076d976fdad560f5c4ccb1802df408602aecb3025b851969ff480708.json
- add backend/.sqlx/query-6e60bcb9d941716127a4ed3cead4b9a375deb0e4238137d3b095c43bae316702.json
- add backend/.sqlx/query-6e71eb3247a4b255a2187731a9d54c4fe2aac97e458c1247b8b89364ff590b9f.json
- add backend/.sqlx/query-6f89b8deda1078080ad8cfc2db507325e19bb0ffd02f1aa4f933045633c4914a.json
- add backend/.sqlx/query-6f92eb099a3182a7f862df97a6f9cf340bef74f512099000e03450f69b796ef1.json
- add backend/.sqlx/query-706d61211ccde2d45e1fc60480b37719f90ce364bf3a118743bfe82eca3783ae.json
- add backend/.sqlx/query-7148baad9c5cba418a5d7818761e3ac52fe166fbfa0bfc5f6bbe749fa0a6889e.json
- add backend/.sqlx/query-72132fbc4c6da619b3055bd473b5928c8a1ff7886a613d9d6be3f2ab2a7a7f4d.json
- add backend/.sqlx/query-733ab1cda0fdc0cecf46928410fefb3b4e96eb2390dfdb93b95ce4c13f0d9e59.json
- add backend/.sqlx/query-733faae97d10baca47579a4a56ce281a6f36a60c73739f9ad692fc8b3825964c.json
- add backend/.sqlx/query-73720cd6ae56d7e210c173ca90f6c982f68150b76dc2d4cd578965c62ddb11be.json
- add backend/.sqlx/query-73e84e079e38064cbf573149243395913f6a14bbaceedeff7bf41fdcaf63f01c.json
- add backend/.sqlx/query-740f728d9932a5da47b6b9454ed77304f5e93dc836dc21b3994eb4e7c8bc8219.json
- add backend/.sqlx/query-74fdd241eb54952015786937b057d437b60267d664cd4b57a9c394486f6001b2.json
- add backend/.sqlx/query-75a8631bc9e4f89b9e1b6d1899711e148228dfa0a6760fbba7ddf2711fb16e6e.json
- add backend/.sqlx/query-7635e7f06daac3a495a2439bc893e345effd96be4a8760d4ca11538334d875c4.json
- add backend/.sqlx/query-768935f0dff24d092ebaff3512026b9e6a0344c9d10ee0cf852d299c80bba6c8.json
- add backend/.sqlx/query-778a5cc33f4b205914711921c98653f826d2adc8175c9297efb485caf4c3d96d.json
- add backend/.sqlx/query-78418e5f9824bceb1937348a77d50ced7a3e2f21ec72940fe9a70e77cb3923a0.json
- add backend/.sqlx/query-7a3f67d8cafc3611f94a8cb2406ab4c0e90a3619f7b9e4b6ad67fe11a46b91d9.json
- add backend/.sqlx/query-7b06af69ee03943c64083e5bc94cb6dbd6f5017ad44546dff7582c31345edc51.json
- add backend/.sqlx/query-7c8ec9e26f553fc211b5bd819e31722a054bb9414950d16a8ebd451dc18d4f3b.json
- add backend/.sqlx/query-7cc78deb0836ac802b017122ac50fe71bbe8af86c7aa5c8b90b10d1672a9d31a.json
- add backend/.sqlx/query-7cf8e3b8f83a16c49ce2f7e66673d69e773f71abded50c5bb29884f9dff628bd.json
- add backend/.sqlx/query-7f0faa7ca48a6a56274f7d05c1fb4ad2d8dd384fdb7bc178220f07481236c8b2.json
- add backend/.sqlx/query-7f497e0097bf329922d709282092b588975f7c2d8c508fbe49ab3d9d4c99c396.json
- add backend/.sqlx/query-7fdca4a1f7c40789d44de54a739eca0bb898c9fbf3e89784e2f784630c56dba5.json
- add backend/.sqlx/query-82aa3e3878c98cbdcc5bbefd11acd7b19521314a38ab9085516eb81e39354d2a.json
- add backend/.sqlx/query-860d54897714862bf6312fc00b440d414b9083efd695f04c31f26510d0254208.json
- add backend/.sqlx/query-865245efea368b2c0b937356889a07b9a04954165e700f4c7c35687c13f2be27.json
- add backend/.sqlx/query-86645359fb0da9b7441326acb5ac4d8be2c0eda7f3ef0d97d0b4d661aa0d62eb.json
- add backend/.sqlx/query-87426464ee1ed01c4e1940b86ed461af98bcfe50c40df7c869c1c03395a79e07.json
- add backend/.sqlx/query-87f52f0262716fe497a6e8b42722cc11f88dacaa0bca746ebd5b474a734d9bb3.json
- add backend/.sqlx/query-88ca29971ada21e0ff2b92315e39c7aefbd81215862c5c7149e2dbca93c5d1fe.json
- add backend/.sqlx/query-8932b373514ebf8056f5934c5b02dd675f6fe1b1317688676d5c32e1f01065a7.json
- add backend/.sqlx/query-89804ccea9075b137f7c7e47917f3477f770dfd7550ab97060b981849618a201.json
- add backend/.sqlx/query-8b2ab82dd4fe83655e074b1edc9e80e2ca276a327e044ad5578fb15eba3ac3ee.json
- add backend/.sqlx/query-8d3042b1d0415262c8729e52a4d8933bf52b484798b7e3530219b0117a60f5d1.json
- add backend/.sqlx/query-8d94635535054f82b5185372543c7347a8fe98d8402d99130a29520eab53bc73.json
- add backend/.sqlx/query-8db75a6ddf63baa3ee89defbedaefb53f61892395025de17dce21451f81ba8b1.json
- add backend/.sqlx/query-8e856e6e4081d2ca26e5e6097848fab90e055cbbc318956a3869750a0855fe3f.json
- add backend/.sqlx/query-917a021a7c54c19e1257d558ec4e40c0001c975d00af6255ab2707d3ebb045ac.json
- add backend/.sqlx/query-91b64087ce497ce4426c00ccdd8cbfde639f18d24df8362c11a211a9acf2fc92.json
- add backend/.sqlx/query-92461256ad7b62764b2bd75674ccbfc11df6648d6d856e3e68fc80801457c555.json
- add backend/.sqlx/query-93883e88af152aca23a39dadd95669f025294cb532a892e58891a0e756e9c784.json
- add backend/.sqlx/query-93c4fe897770127740a52c43b14f2007bfa6faf8743dc07611ac22e9140e89f6.json
- add backend/.sqlx/query-942753e2a11713b9d4b46a52f4a6426629f95c7a91598f351741f9bc100e243b.json
- add backend/.sqlx/query-94499cff482a1533a32723bc9924bf62af0a9ec7cfe338b1c97336e6a1ea5dee.json
- add backend/.sqlx/query-94b98a4fccec6a48b27cdf8d3ea8740a81baac9e53a5c458acb7f9692893f069.json
- add backend/.sqlx/query-957b131c5ae23e306fe4634db068c611122ae61057c805c82413fb69ed015c58.json
- add backend/.sqlx/query-95f70efea97448688250d1647387c7d3dc1e4eec0dc2e6ba88f09e9746132d09.json
- add backend/.sqlx/query-965e42468c325a893d39c2eeefbea254b37e04f0d067d88988cf4ece97b0e818.json
- add backend/.sqlx/query-9888b553ae9f5cd32aa1eb6cfee1abecc08787a0f7fd7526956d30d62c1801ff.json
- add backend/.sqlx/query-9b9965ea0437e0f8e3467ba2b237d6a84c74bbc03c389117d8f3f6e71273b587.json
- add backend/.sqlx/query-9beff9c1f4daa7453bd6f13f3692b320f1f82ca87bed75f8a85e87882ac4bfc1.json
- add backend/.sqlx/query-9c3b9cd35a4c58e67a15ad0372c18b6c5fc0a969b9aec88508cea8388c2fbe55.json
- add backend/.sqlx/query-9c4016766b52e727103f5d09c7572fa90d793c5b391cfe99809d2d8825b9c9d6.json
- add backend/.sqlx/query-9e78a21e3bae2928e4ce353423030c59deb97bdbf242e8d4b8e2af11d65596f1.json
- add backend/.sqlx/query-9f011d836f16bc90ba585c43424fbb960ee5cadd5f50088e252655f5f79612fe.json
- add backend/.sqlx/query-a1df48d19975013b68c2e57f90a4c0691d7f31a83ffc92628d918959daba3e36.json
- add backend/.sqlx/query-a2d2cf6227a9e713d29610e2c0f0e94146f1798257a9dd68325487329eb6e24c.json
- add backend/.sqlx/query-a57268c9e448ddc42290fce152a7d81d332eccd8c90b962b7ef0cdaba6d8a3b0.json
- add backend/.sqlx/query-a65fb2ba103206d6ad4c761ec1fb62638fc50474679c751183013efc7cb0edbd.json
- add backend/.sqlx/query-a8414c7b067366f56d56b3a465b248209e3800c25fcea8dadc2f63fdca72e82f.json
- add backend/.sqlx/query-a9d4611cf695893da6a962355b974077340a56497e7bc9100f288cb1195267ad.json
- add backend/.sqlx/query-aa35c7c6645c9a7637f083650a2d9c898e15c49cc49a7df001fa6861ab47995e.json
- add backend/.sqlx/query-aa69a761eb48721491a2275dc2040ac0d58ce45701dba74214e2af3685db59f1.json
- add backend/.sqlx/query-aadb91fe11c7e3106062a2055b0196ca12ed20e40513bc14f11f4a8bd5623a3f.json
- add backend/.sqlx/query-ad438c18ca77e186c4e33a8079374181a47fbbec6a5f0ae5fe2144e342910d40.json
- add backend/.sqlx/query-ad82dc4820ab69556cba650ae422084d57dec2f89ae99c977be1b36261c8d0b4.json
- add backend/.sqlx/query-aeee6c4f9115efe386351097cb8c3512550eeecac893289d40b8e01c04f9f167.json
- add backend/.sqlx/query-aefd6f17ea2becd41283f5b07fca49481cbe221437fed57283b0f52c03bf85c7.json
- add backend/.sqlx/query-b038e92708c16243759184994795f864db1cabbdf8f0d93128d41850888e531c.json
- add backend/.sqlx/query-b09e737c4925f4ebb8fc57919c50542f125f4fc7d2ba49c3cd368682aba9a8b6.json
- add backend/.sqlx/query-b3c77106c16c2b75c51a36e6e56f9cff657fce6f0472d905af97ffe5aba8d3c7.json
- add backend/.sqlx/query-b42cab53e091470ad8237271def4b42146a75d30b77aecb4c1ae7ab7a7cc32d3.json
- add backend/.sqlx/query-b54b3e3f031e9a09d1252bcc9e27ad26959157f77064a4e4d30ed73c3a01e293.json
- add backend/.sqlx/query-b5bada0e6df57aa0243e0234b72c3b39cf6f1ee0ef69a4e232ae06f70b1b1c0c.json
- add backend/.sqlx/query-b5d49d78ba8674954210df5728d43dca77d453a7aae14fb8b0e57e0f7a44e03a.json
- add backend/.sqlx/query-b6bdb63000935a47301993972237254f9b11915a860d6e84ad639f579bb6ac62.json
- add backend/.sqlx/query-b6d2983946f27ac29c85e72685d389d29c8ce1b3c9e3202a272f12f2e6dfbf06.json
- add backend/.sqlx/query-b7fbd0f031db0653546e51da4237160abe2909f3dcf622f9ab1b91537c9169fa.json
- add backend/.sqlx/query-b8ef84a72cfa6cea3a1b1d8cb5916d7e3290de0a05143432151308f32312f94a.json
- add backend/.sqlx/query-b8f80a210fcb0474a124ad93e43a163431366c50dce137863b283121ce70604b.json
- add backend/.sqlx/query-b94c2ca7181b28660e9a9b256e6ebe98b6cf0c450969b6b953434b8d2775ee4b.json
- add backend/.sqlx/query-b9586185e84644f0bd936d7bf5e9bec6ebeaba77ab354d0b7096d9334656497f.json
- add backend/.sqlx/query-b9e59dc4e2e37b0c59ebbe794b03e64647af6b6025b3c74c73324b5735e32802.json
- add backend/.sqlx/query-bb0cf75500c2358d78ae8028e5d587b9e7492ce6082340ec84f7706d668beb45.json
- add backend/.sqlx/query-bbcdcddcd2f31a7e308016f325e9914a10c18cbc05d4b724bb87533cd3851fea.json
- add backend/.sqlx/query-bd76cc54f3ccd774a62f6d2b5ab27e5432bc2202b3e8f030a24a1733c96867af.json
- add backend/.sqlx/query-bfdd9a0dcf20053b8d10c946955530253502e9c624b6586b358660df9d1ec8cc.json
- add backend/.sqlx/query-c2a2d3c0016e6d4df3fd04f9e24c5c4fde0acbe42a195eaf74cf5299dacb846c.json
- add backend/.sqlx/query-c2ca1cf0be6dc893f3f6938953436c69408bd8ca37d45398a1faf450684aec08.json
- add backend/.sqlx/query-c31ebddef69f304403bfb2d816d42bd9731482ceec258e0de1bb61d5ba20d413.json
- add backend/.sqlx/query-c33217c0ec06f08e9b89ac876cb22bf002aadb6cd6391af968d6a08725792228.json
- add backend/.sqlx/query-c35608b0d7569f739dda24b3da59b7b500ff26f5e79433b3f7e3625d91177d26.json
- add backend/.sqlx/query-c42152b0a4b91fd58afbdb06da1a9b7b73f414bdd6607343df01dc0fa3d4b5fd.json
- add backend/.sqlx/query-c4d21db839f7e0b45fc1fc1291840e78d1e92440e003c5ad3cb45c3d9f5042fc.json
- add backend/.sqlx/query-c5f66036fe85ebb4597f564dcf40b7547b409195b65ea3130454f96265c9bd82.json
- add backend/.sqlx/query-c64fd6da083e54e1719580125eb72a544081ed4c91c02295c6f1d799fb3b4f5a.json
- add backend/.sqlx/query-c7525a8aa940491736dd45cd876dab2e4cd0d05f0104e2d2b08980bcee557212.json
- add backend/.sqlx/query-cbb4acc6eb730ec886b1af23e6389a0e68d7a672d8643101f6680e42df944711.json
- add backend/.sqlx/query-cc77b8a12eb03938d34d391c8b1397dd2fe99748315a95299563c3a2f5c989bf.json
- add backend/.sqlx/query-cc97b910b8afcfd348d5fe69f7e75862ddd7e31680e46a61170a467b64cdf547.json
- add backend/.sqlx/query-cca54c0742b36cc4b7c3c2bf0bb3d987d16771d42334f11c4e9d7598651d21e6.json
- add backend/.sqlx/query-ccf5a42b62f74eeb3d424fc4573ec6b01b1ed46b56518c0ccc5121e524d2f3c5.json
- add backend/.sqlx/query-cd002400a4b0c6b071bb949d0c716ab2691caa661ccc407af85da42599e1101b.json
- add backend/.sqlx/query-cdb2b8bb16c0e2e04fa6df8e22e060adfc81c38cf67121ada9f6c721a9398588.json
- add backend/.sqlx/query-cde649035ebc12f0bbce749e9a5347b8073659b42c9e65a4ac74400b17dc38f7.json
- add backend/.sqlx/query-ce7f978d16864a568b49c47eaa68edcaafb0d293f6d08f5a945bd456c91fd417.json
- add backend/.sqlx/query-cf9a5a22ac9e4ab44a56d2aa4e110a63ba212d392a353850a344f69a0a13811f.json
- add backend/.sqlx/query-d00ba1f23877ca15a8ac8b09d55fc86a37d40c9a0ea63afdbfa2f725fa39d255.json
- add backend/.sqlx/query-d09299b064ef5fefd5f5ac8a7f1ae1a549cfffd9081fa72b4427fa4ea21cbcb5.json
- add backend/.sqlx/query-d0c599e01228531f2ab7f571658c71563fd1ad88cfa5e13f1adfaad3f00eaa75.json
- add backend/.sqlx/query-d2de711bc12629a1141d11db45496d22c0ff03555c983205b512a318290948a0.json
- add backend/.sqlx/query-d32e84b6ce21f4b4553aead45ef53dce4362399a75c39f7203cbd770e997abdf.json
- add backend/.sqlx/query-d48c21b6a8d67db4b37ee43d6273e3d41d1cf2a2b89fe434edd009a29e69b94c.json
- add backend/.sqlx/query-d705da303937bc5e1a2e929b9cf3f93e4e24b55e1dd14c4a83bca29f0d3a0341.json
- add backend/.sqlx/query-d83b8a3f417cd420d44aa3f7f8c462b28c2f7f2a4804ba00bb51a63759a7f8b2.json
- add backend/.sqlx/query-d928c488809305d28f877c359c93614550307868213d312ea8ae24bcbb927db5.json
- add backend/.sqlx/query-da70570e2492dcc5b21ff51069db1a366ff94803b0cfa5821c497b6ba06ed2fc.json
- add backend/.sqlx/query-db38e6387cbf510bf0c13ecee0f42afc7c100aebd0b043fd23424cfe61110e3a.json
- add backend/.sqlx/query-dbf52d447a84d9f1a7f36f3c57c05b1c547bd8515706b2be877762edd1aff254.json
- add backend/.sqlx/query-dc64e1d25d9ced3a49130cee99f6edc3f70a4917910cf3b76faefc24ac32159d.json
- add backend/.sqlx/query-dccbd661ee975b7e9b74d175c452fbd3ba2c847c24c6f401fd18736aeaed3ad3.json
- add backend/.sqlx/query-dd458a825f2295d6650263f39ed6f22d1da12443b80bd53a4b6c61e870b4cf07.json
- add backend/.sqlx/query-dd4e31b27b005a68baeacf0ada1645ebe2277a8c437d6846db1776b53611aa2e.json
- add backend/.sqlx/query-dd99e48b1572e25db38f03da95984fda1072913b29bb6b3753a0d351583dfff6.json
- add backend/.sqlx/query-de3230de507ca1e11d2ca40bef8a5b8470628ddbaa454af4f49f6fe6953f9014.json
- add backend/.sqlx/query-de6d39c5473742a38ff437b95613ae32a366f4339c8165f58d192151024b6caf.json
- add backend/.sqlx/query-dee9b81f66d0a8a8ec6543e2bda43b68604377280236f83eec9bb710c4a8b957.json
- add backend/.sqlx/query-df3c9235defd412e75b967ec4c1d052404a6289ec89ebc3cf7524f0a65279258.json
- add backend/.sqlx/query-df917df33b1f18f0545d866fdcdbff3c189c549e3e92966b808166ebd65a758e.json
- add backend/.sqlx/query-e078bd7e0e60f80321173ea5383e3c89f5b07036b7f6c3be6a66e25dd64d8790.json
- add backend/.sqlx/query-e15d8685afde9f89919d3643dd1df3d4718d826147e63be4c8d4e8708a15e481.json
- add backend/.sqlx/query-e1a40a1cc7c618d815ebfaec6751ab19146ab76519020ce783bc916e64155a14.json
- add backend/.sqlx/query-e25c2c4e795fd113fbf9631b4fc107d217f2dd0a8eacd812067defe8d3529d54.json
- add backend/.sqlx/query-e2a9b8f8fb63c4e8737c0f2925ffeff025be37184ede64b328e0ecd68680dc08.json
- add backend/.sqlx/query-e3e45d1876b1a38771e1bb32eda68462ba27bd0beca41a602ebf60b86b863680.json
- add backend/.sqlx/query-e53f34921983218ba03123ea07403917a62cb0fc66039be84387df090606eefc.json
- add backend/.sqlx/query-e5ada1e1857eec30e7c2a55c19b0ddbf2c90fc7f0019f211549f2abfc4fdf487.json
- add backend/.sqlx/query-e70b6cc45322a8ba1c3e9fef0c8c3185bbeacbcbf16810c303c029ea108802bf.json
- add backend/.sqlx/query-e983f01536d1ed4b6b40d640877d9fa445aa04972cfe427116cbdf104e6cb32f.json
- add backend/.sqlx/query-ea775b89fed8c652e57e21cd202dbb9c4d13dedc7d0890dd1d13dfa7635f02b5.json
- add backend/.sqlx/query-ea7e6d82c94b562d5e75720c8c1af6ad707ef717406330be0c4255363f9c783d.json
- add backend/.sqlx/query-eab47df4e85e9dfeb87b480dc092b09924d6239ba71b8715be5c56137ebca953.json
- add backend/.sqlx/query-ec156d9abd97de863483a1d8fe3e4ff63a63b39f883d320175c88b0bcaad3f70.json
- add backend/.sqlx/query-ec34b2dc8930568c2e135aa13d08783d7b62dd524eef99f00b8bebd55f0196bd.json
- add backend/.sqlx/query-ed05dcba73fd4426c2de9c8828d943e45eafa31dbb155c4a50b2471308dd3097.json
- add backend/.sqlx/query-ef47b9016770614a3d12c6bba1c99b60046a3bff47ca5e18759786362446e1be.json
- add backend/.sqlx/query-f10d14593a49a3f14536b6ec7a0283b16f57a731f18f1ea00a25b76aeda238cb.json
- add backend/.sqlx/query-f1de9db0b037bd44be7aa37b308ce60a0c10888951f385b61fe237e09b924976.json
- add backend/.sqlx/query-f45f95ec5c791d1bd87635f304f62caf19b12dc178c570828a8bb8a5579ea17a.json
- add backend/.sqlx/query-f5476f8976f2c0ab202fe52ea148d95570f6e3901f6ef0637e58701eb42d0120.json
- add backend/.sqlx/query-f5d1ab63c42cd0e45cfab56f5f4efd821816137eacf138aa5191dbe47c5bd444.json
- add backend/.sqlx/query-f63fca5359b5dc0141d7de8e8f4c3ec1e7b446d48ab6d175c8b876823bd042a9.json
- add backend/.sqlx/query-f7bb4e7ba6e7a6abb1549bc112176ca7afdb25923aa3aae3775a65cbd17afeaa.json
- add backend/.sqlx/query-f91db2c61f14281c7dfd6f6aefdffc97e080dd9acc5d9c5edd8a865623b44628.json
- add backend/.sqlx/query-f9ff82cdb66393d4fdef38cf4e64b93b9f8b062f06cd3f7bde3b0873ecbfc835.json
- add backend/.sqlx/query-facfb30591b5abfa384d897e0de7c5d0f0e9f80cf8c6e57a1c5298ad1a990351.json
- add backend/.sqlx/query-faf3d877c077b20211fe2cbf92c54322660147ab31fe5036e3e722725c2e3e44.json
- add backend/.sqlx/query-fb2e03f8ccf37e8463ee7f14e74fc20fdb46337da0f561b4fa0eb815fb0486b4.json
- add backend/.sqlx/query-fcdb75aee759125fdb4169e6c9dd2b47b4f264c512bd62db700083cf479d6d3f.json
- add backend/.sqlx/query-fdfe11a59054df6111a7833043bf8cfb772c5897d1aa9c25ccad0579945e74f2.json
- add backend/.sqlx/query-fe3dbfffdaca1dcf828be7cc949f7f74b05f694dc8ef3ee37a3dac8f695ec62d.json
- add backend/.sqlx/query-fe5ef9f6c10dfb61e236bc955d377dd8b0893e052ee073b55fbb1b8f745a9cd5.json
- add backend/Cargo.toml
- add backend/Dockerfile
- add backend/migrations/20260125180102_initial_schema.sql
- add backend/migrations/20260125181224_voting_system.sql
- add backend/migrations/20260125183611_comments.sql
- add backend/migrations/20260125204900_notifications.sql
- add backend/migrations/20260125205600_advanced_voting.sql
- add backend/migrations/20260125211000_public_events.sql
- add backend/migrations/20260126012000_plugin_packages.sql
- add backend/migrations/20260126120000_instance_settings.sql
- add backend/migrations/20260126121000_admin_columns.sql
- add backend/migrations/20260126130000_deliberation_system.sql
- add backend/migrations/20260126140000_advanced_voting.sql
- add backend/migrations/20260126150000_liquid_delegation.sql
- add backend/migrations/20260126160000_plugin_registry.sql
- add backend/migrations/20260126170000_gitlab_integration.sql
- add backend/migrations/20260126180000_roles_permissions.sql
- add backend/migrations/20260126190000_voting_plugins.sql
- add backend/migrations/20260126200000_invitations.sql
- add backend/migrations/20260126210000_plugin_kv_store.sql
- add backend/migrations/20260126220000_approval_workflows.sql
- add backend/migrations/20260126230000_vote_reproducibility.sql
- add backend/migrations/20260126240000_topic_voting_methods.sql
- add backend/migrations/20260126250000_moderation_ledger.sql
- add backend/migrations/20260126260000_decision_workflows.sql
- add backend/migrations/20260126270000_self_moderation_rules.sql
- add backend/migrations/20260126280000_proposal_lifecycle.sql
- add backend/migrations/20260126290000_governance_analytics.sql
- add backend/migrations/20260126300000_conflict_resolution.sql
- add backend/migrations/20260126310000_structured_deliberation.sql
- add backend/migrations/20260126320000_public_data_export.sql
- add backend/migrations/20260126330000_federation.sql
- add backend/migrations/20260127105000_wasm_plugin_runtime.sql
- add backend/migrations/20260127150000_demo_seed_data.sql
- add backend/src/api/analytics.rs
- add backend/src/api/approvals.rs
- add backend/src/api/auth.rs
- add backend/src/api/comments.rs
- add backend/src/api/communities.rs
- add backend/src/api/conflicts.rs
- add backend/src/api/delegation.rs
- add backend/src/api/deliberation.rs
- add backend/src/api/demo.rs
- add backend/src/api/exports.rs
- add backend/src/api/federation.rs
- add backend/src/api/gitlab.rs
- add backend/src/api/health.rs
- add backend/src/api/invitations.rs
- add backend/src/api/lifecycle.rs
- add backend/src/api/mod.rs
- add backend/src/api/moderation.rs
- add backend/src/api/moderation_ledger.rs
- add backend/src/api/notifications.rs
- add backend/src/api/permissions.rs
- add backend/src/api/plugins.rs
- add backend/src/api/proposals.rs
- add backend/src/api/roles.rs
- add backend/src/api/self_moderation.rs
- add backend/src/api/settings.rs
- add backend/src/api/users.rs
- add backend/src/api/voting_config.rs
- add backend/src/api/workflows.rs
- add backend/src/auth/jwt.rs
- add backend/src/auth/middleware.rs
- add backend/src/auth/mod.rs
- add backend/src/auth/password.rs
- add backend/src/config/mod.rs
- add backend/src/db/mod.rs
- add backend/src/demo/mod.rs
- add backend/src/main.rs
- add backend/src/models/community.rs
- add backend/src/models/mod.rs
- add backend/src/models/proposal.rs
- add backend/src/models/user.rs
- add backend/src/plugins/builtin/comment_notifications.rs
- add backend/src/plugins/builtin/conflict_resolution.rs
- add backend/src/plugins/builtin/decision_workflows.rs
- add backend/src/plugins/builtin/federation.rs
- add backend/src/plugins/builtin/governance_analytics.rs
- add backend/src/plugins/builtin/mod.rs
- add backend/src/plugins/builtin/moderation_ledger.rs
- add backend/src/plugins/builtin/proposal_lifecycle.rs
- add backend/src/plugins/builtin/public_data_export.rs
- add backend/src/plugins/builtin/self_moderation.rs
- add backend/src/plugins/builtin/structured_deliberation.rs
- add backend/src/plugins/hooks.rs
- add backend/src/plugins/manager.rs
- add backend/src/plugins/mod.rs
- add backend/src/plugins/wasm/host_api.rs
- add backend/src/plugins/wasm/mod.rs
- add backend/src/plugins/wasm/plugin.rs
- add backend/src/plugins/wasm/runtime.rs
- add backend/src/voting/mod.rs
- add backend/src/voting/quadratic.rs
- add backend/src/voting/ranked_choice.rs
- add backend/src/voting/schulze.rs
- add backend/src/voting/star.rs
- add compose/.env.demo.example
- add compose/.env.production.example
- add compose/demo.yml
- add compose/dev.yml
- add compose/production.yml
- add docs/README.md
- add docs/admin/backup.md
- add docs/admin/configuration.md
- add docs/admin/database.md
- add docs/admin/installation.md
- add docs/admin/plugins.md
- add docs/admin/security.md
- add docs/reference/api.md
- add docs/reference/glossary.md
- add docs/reference/voting-methods.md
- add docs/user/communities.md
- add docs/user/delegation.md
- add docs/user/getting-started.md
- add docs/user/settings.md
- add docs/user/voting.md
- add frontend/.gitignore
- add frontend/Dockerfile
- add frontend/astro.config.mjs
- add frontend/package-lock.json
- add frontend/package.json
- add frontend/public/favicon.ico
- add frontend/public/favicon.svg
- add frontend/src/components/AdminNav.astro
- add frontend/src/components/ThemeSwitcher.astro
- add frontend/src/components/icons/VotingIcons.astro
- add frontend/src/components/moderation/LedgerViewer.astro
- add frontend/src/components/voting/DelegationGraph.astro
- add frontend/src/components/voting/VotingMethodCard.astro
- add frontend/src/components/voting/VotingResultsChart.astro
- add frontend/src/layouts/Layout.astro
- add frontend/src/layouts/PublicLayout.astro
- add frontend/src/lib/api.ts
- add frontend/src/lib/themes.ts
- add frontend/src/pages/about.astro
- add frontend/src/pages/admin/approvals.astro
- add frontend/src/pages/admin/invitations.astro
- add frontend/src/pages/admin/plugins.astro
- add frontend/src/pages/admin/roles.astro
- add frontend/src/pages/admin/settings.astro
- add frontend/src/pages/admin/voting.astro
- add frontend/src/pages/communities.astro
- add frontend/src/pages/communities/[slug]/index.astro
- add frontend/src/pages/communities/[slug]/plugins.astro
- add frontend/src/pages/communities/[slug]/proposals/index.astro
- add frontend/src/pages/communities/[slug]/proposals/new.astro
- add frontend/src/pages/communities/[slug]/settings.astro
- add frontend/src/pages/communities/[slug]/voting-config.astro
- add frontend/src/pages/communities/new.astro
- add frontend/src/pages/dashboard.astro
- add frontend/src/pages/delegations.astro
- add frontend/src/pages/demo.astro
- add frontend/src/pages/docs.astro
- add frontend/src/pages/features.astro
- add frontend/src/pages/index.astro
- add frontend/src/pages/login.astro
- add frontend/src/pages/manifesto.astro
- add frontend/src/pages/notifications.astro
- add frontend/src/pages/proposals.astro
- add frontend/src/pages/proposals/[id].astro
- add frontend/src/pages/register.astro
- add frontend/src/pages/settings.astro
- add frontend/src/pages/setup.astro
- add frontend/src/pages/users/[username].astro
- add frontend/tsconfig.json
- add scripts/.dev/state.json
- add scripts/demo-reset.ps1
- add scripts/demo-reset.sh
- add scripts/dev-start.ps1
- add scripts/dev-start.sh
- add scripts/dev-stop.ps1
- add scripts/dev-stop.sh
- add scripts/dev-test.ps1
- add scripts/dev.ps1
- add scripts/dev.sh
- add scripts/post-reboot-setup.ps1
- add scripts/prepare-production.ps1

Diffstat:
- 483 files changed, 61980 insertions(+)
2026-01-27 17:21:58 +01:00

2.7 KiB

Backup & Recovery

Protecting your Likwid data.

What to Backup

Component Location Priority
PostgreSQL database Database server Critical
Uploaded files /uploads (if configured) High
Configuration .env files High
SSL certificates Reverse proxy Medium

Database Backup

Manual Backup

# Full backup
pg_dump -h localhost -U likwid -F c likwid_prod > backup_$(date +%Y%m%d).dump

# SQL format (readable)
pg_dump -h localhost -U likwid likwid_prod > backup_$(date +%Y%m%d).sql

Automated Backup Script

#!/bin/bash
# /etc/cron.daily/likwid-backup

BACKUP_DIR="/var/backups/likwid"
DATE=$(date +%Y%m%d_%H%M%S)
RETENTION_DAYS=30

# Create backup
pg_dump -h localhost -U likwid -F c likwid_prod > "$BACKUP_DIR/likwid_$DATE.dump"

# Compress
gzip "$BACKUP_DIR/likwid_$DATE.dump"

# Remove old backups
find "$BACKUP_DIR" -name "*.dump.gz" -mtime +$RETENTION_DAYS -delete

# Optional: sync to remote storage
# aws s3 cp "$BACKUP_DIR/likwid_$DATE.dump.gz" s3://bucket/backups/

Containerized Backup

# If using podman-compose
podman exec likwid-prod-db pg_dump -U likwid likwid_prod > backup.sql

Recovery

Full Restore

# Drop and recreate database
psql -h localhost -U postgres -c "DROP DATABASE IF EXISTS likwid_prod;"
psql -h localhost -U postgres -c "CREATE DATABASE likwid_prod OWNER likwid;"

# Restore from dump
pg_restore -h localhost -U likwid -d likwid_prod backup.dump

# Or from SQL
psql -h localhost -U likwid likwid_prod < backup.sql

Point-in-Time Recovery

For critical installations, configure PostgreSQL WAL archiving:

# postgresql.conf
archive_mode = on
archive_command = 'cp %p /var/lib/postgresql/archive/%f'

Demo Instance Reset

The demo instance can be reset to initial state:

# Windows
.\scripts\demo-reset.ps1

# Linux
./scripts/demo-reset.sh

This removes all data and re-runs migrations with seed data.

Disaster Recovery Plan

Preparation

  1. Document backup procedures
  2. Test restores regularly (monthly)
  3. Keep offsite backup copies
  4. Document recovery steps

Recovery Steps

  1. Provision new server if needed
  2. Install Likwid dependencies
  3. Restore database from backup
  4. Restore configuration files
  5. Start services
  6. Verify functionality
  7. Update DNS if server changed

Recovery Time Objective (RTO)

Target: 4 hours for full recovery

Recovery Point Objective (RPO)

Target: 24 hours of data loss maximum (with daily backups)

Testing Backups

Monthly backup test procedure:

  1. Create test database
  2. Restore backup to test database
  3. Run verification queries
  4. Document results
  5. Delete test database