likwid/docs/admin/backup.md

127 lines
2.8 KiB
Markdown
Raw Normal View History

.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 16:21:58 +00:00
# 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
```bash
# 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
```bash
#!/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
```bash
# If using podman-compose
podman exec likwid-prod-db pg_dump -U likwid likwid_prod > backup.sql
```
## Recovery
### Full Restore
```bash
# Drop and recreate database
psql -h localhost -U likwid -d postgres -c "DROP DATABASE IF EXISTS likwid_prod;"
psql -h localhost -U likwid -d postgres -c "CREATE DATABASE likwid_prod OWNER likwid;"
.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 16:21:58 +00:00
# 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:
```ini
# 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:
```bash
# Windows
.\scripts\demo-reset.ps1
# Linux
./scripts/demo-reset.sh
```
This removes all demo data by recreating the demo database volume; on startup the backend runs core migrations and demo seed migrations to restore the initial demo dataset.
.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 16:21:58 +00:00
## 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