├── logo-1x.png ├── logo-2x.png ├── logo-1.5x.png ├── dark-logo-glyph.png ├── light-logo-glyph.png ├── .github └── ISSUE_TEMPLATE │ ├── feature_request.yml │ └── bug_report.yml ├── dark-logo-glyph.svg ├── logo-wiki.svg ├── light-logo-glyph.svg ├── logo-ascii.txt ├── lgiht-logo-stacked.svg ├── dark-logo-stacked.svg ├── README.md ├── lnme.svg └── lnme-citadel.svg /logo-1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/runcitadel/citadel/HEAD/logo-1x.png -------------------------------------------------------------------------------- /logo-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/runcitadel/citadel/HEAD/logo-2x.png -------------------------------------------------------------------------------- /logo-1.5x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/runcitadel/citadel/HEAD/logo-1.5x.png -------------------------------------------------------------------------------- /dark-logo-glyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/runcitadel/citadel/HEAD/dark-logo-glyph.png -------------------------------------------------------------------------------- /light-logo-glyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/runcitadel/citadel/HEAD/light-logo-glyph.png -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.yml: -------------------------------------------------------------------------------- 1 | name: Feature Request 2 | description: Suggest an idea for Citadel 3 | title: "[Feature]: " 4 | labels: ["feature request", "enhancement"] 5 | body: 6 | - type: markdown 7 | attributes: 8 | value: | 9 | We're always looking for suggestions on how we could improve Citadel! 10 | - type: textarea 11 | id: problem 12 | attributes: 13 | label: Describe the problem 14 | description: Is your feature request related to a problem? Please describe. 15 | placeholder: A clear and concise description of what the problem is. Ex. I'm always frustrated when... 16 | validations: 17 | required: false 18 | - type: textarea 19 | id: solution 20 | attributes: 21 | label: Describe the solution 22 | description: Add some details about the solution you'd like to see 23 | placeholder: I want to be able to... 24 | validations: 25 | required: false 26 | - type: textarea 27 | id: context 28 | attributes: 29 | label: Additional context 30 | description: Add any other context or screenshots about the feature request here. 31 | placeholder: "This is how it should look: " 32 | validations: 33 | required: false 34 | -------------------------------------------------------------------------------- /dark-logo-glyph.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.yml: -------------------------------------------------------------------------------- 1 | name: Bug Report 2 | description: Create a report to help us improve 3 | title: "[Bug]: " 4 | labels: ["bug", "triage"] 5 | body: 6 | - type: markdown 7 | attributes: 8 | value: | 9 | Thanks for taking the time to fill out this bug report! 10 | - type: textarea 11 | id: describe-bug 12 | attributes: 13 | label: Describe the bug 14 | description: A clear and concise description of what the bug is. Include screenshots if relevant. 15 | placeholder: The bug happened when I opened the app... 16 | value: "A bug happened!" 17 | validations: 18 | required: true 19 | - type: textarea 20 | id: reproduce-bug 21 | attributes: 22 | label: Reproduce 23 | description: How do you trigger this bug? Please walk us through it step by step. 24 | value: "Reproduce the bug step by step." 25 | validations: 26 | required: true 27 | - type: input 28 | id: version 29 | attributes: 30 | label: Citadel version 31 | description: What version of Citadel were you running when the bug occurred? You can find the version number on the Settings page. 32 | placeholder: e.g. v0.1.0 33 | validations: 34 | required: true 35 | - type: input 36 | id: operating-system 37 | attributes: 38 | label: Operating system 39 | description: What operating system (OS) is your Citadel running on? 40 | placeholder: e.g. Citadel OS, Ubuntu, Debian or other 41 | validations: 42 | required: true 43 | - type: textarea 44 | id: logs 45 | attributes: 46 | label: Log output 47 | description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. 48 | render: shell 49 | validations: 50 | required: false 51 | -------------------------------------------------------------------------------- /logo-wiki.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /light-logo-glyph.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /logo-ascii.txt: -------------------------------------------------------------------------------- 1 | *(#%%(* 2 | **/(###(/#&&&%#(/** 3 | *(((((//*,,,#@@@@&&&%#((* 4 | */(%(**,,,,,,,#@@@@@@@@@%(/ 5 | */(%/,,,,,,,,,#@@@@@@@@@%(* 6 | **/(##/*,,,,*/(%/,,,**/(#%%&&&&@@@@@%(*,,,,,*/#&%(/** 7 | */(((((/*,,,,,,,*(##(/(##%%%#(%&&&&&&&&&%(/**,,,/(%@@&&&%#(/* 8 | */(%%#(**,,,,,,,*/(#%&&&&&%%#(/**,#@@@&&&&&&&&&&%#(//(%@@@@@@@&%%%(** 9 | (%&&&%%%(*,,,,/(%&&&&&&&#/*,,,,,,,#@@@@@@@&&&&&&&&&&&%&@@@@&&%%%(/*,* 10 | (%&@@@@&&&%#(/#%&&%%#/*,,,,,,,,,,,#@@@@@@@@@@@&&&&&&&%&&%%##(/*,,,,,* 11 | (%&@@@@@@@@&&%#((/*,,,,,,,,,,,,,,,#@@@@@@@@@@@@@@@@&&&%%(/*,,,,,,,,,* 12 | (%&@@@@@@@@@&#/,,,,,,,,,,,,,,,,,,,#@@@@@@@@@@@@@@@@@@@%(/,,,,,,,,,,,* 13 | (%&@@@@@@@@@&#(/**,,,*(%##/,,,,,,,#@@@@@@@&%%%&&@@@@&&%(/,,,,,,,,,,,* 14 | (%&@@@@@@@@@&###%&%#((%@&&&&%(/**,#@@@&%%%#(*,(%%%&&&%#(/,,,,,,,,,,,* 15 | (%&@@@@@@@@@@&%%&&&&&%&@@@@@@&&&%##%##(/*,,,,,/%%&&&%#(**,,,,,,,,,,,* 16 | (%&@@@@@@@@@@@@@@@&%%%&@@@@@@@@@@@#**,,,,,,,,,/%%%(/**,,,,,,,,,,,,,,* 17 | (%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* 18 | (%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* 19 | (%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* 20 | (%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* 21 | (%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* 22 | /%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* 23 | *(%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* 24 | #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* 25 | */#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* 26 | */#&&@@@@@@@@@@@@@@@@@@@@@@@@@#,,,,,,,,,,,,,,,,,,,,,,,,,,,* 27 | */(#%&@@@@@@@@@@@@@@@@@@@@@#,,,,,,,,,,,,,,,,,,,,,,,,* 28 | **/(%&@@@@@@@@@@@@@@@@@#,,,,,,,,,,,,,,,,,,,,,* 29 | *(%&@@@@@@@@@@@@@#,,,,,,,,,,,,,,,,,,* 30 | **(%%&@@@@@@@@#,,,,,,,,,,,,,,* 31 | **(#%&@@@@#,,,,,,,,,,,* 32 | */(#&#,,,,,,,* 33 | *#,,,* -------------------------------------------------------------------------------- /lgiht-logo-stacked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /dark-logo-stacked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

Citadel

4 |

5 | 6 | Citadel allows you to run your own Bitcoin Lightning node and personal server. It is proudly **free and open-source** software. Anyone is free to use, copy, study and change the software in any way as well as distribute it for commercial purposes. 7 | 8 | ### Our mission 9 | 10 | We aim to provide secure nodes and servers for everyone where _you_ are in control of your data, not a big company. We make contributions to various open source projects used on Citadel to make sure we're giving back to the community we build on. 11 | 12 | ## Overview 13 | 14 | #### 💡 Have an idea for a feature? [Discuss a topic](https://github.com/runcitadel/citadel/discussions/new) 15 | 16 | #### ⁉ Something isn't working? [Create an issue](https://github.com/runcitadel/citadel/issues/new) 17 | 18 | #### 💬 Need help getting started? [Telegram](https://t.me/runcitadel) / [Discord](https://discord.gg/6U3kM2cjdB) 19 | 20 | #### 🗞️ Stay up to date: [Twitter](https://twitter.com/runcitadel) / [Blog](https://blog.runcitadel.space) 21 | 22 | #### 📚 Find guides & best practices: [Wiki](https://wiki.runcitadel.space) 23 | 24 | ## Installation 25 | 26 | There are many ways to install Citadel. Depending on your hardware and operating system you can follow one of the below step-by-step guides to get started. 27 | 28 | #### Raspberry Pi 4: [runcitadel.space/setup](https://runcitadel.space/setup) 29 | 30 | #### Debian / Ubuntu: [runcitadel.space/x86](https://runcitadel.space/x86) 31 | 32 | #### Migrate from Umbrel: [runcitadel.space/migrate](https://runcitadel.space/migrate) 33 | 34 | #### Docker + Sysbox (experimental): [github.com/runcitadel/citadel-dev](https://github.com/runcitadel/citadel-dev) 35 | 36 | ## Citadel vs. Umbrel 37 | 38 | Citadel is a mostly open source and soon to be fully FLOSS Lightning Node implementation based on [Umbrel](https://github.com/getumbrel/umbrel). Most of the codebase has been rewritten and moved away from Umbrel. Citadel offers many improvements over Umbrel: 39 | 40 | - faster operating system optimized for Raspberry Pi 41 | - independent and therefore faster app updates 42 | - our own, up-to-date user interface with built-in dark mode 43 | - listening node by default 44 | 45 | ## Roadmap 46 | 47 | Citadel is fully transparent and built by the community. To see milestones and follow current development view the [project board](https://github.com/orgs/runcitadel/projects/3). 48 | 49 | ## Repositories 50 | 51 | | Name | Description | 52 | | -------------------------------------------------------- | -------------------------------------------------------------- | 53 | | [citadel](https://github.com/runcitadel/citadel/) | This overview, issues, discussions and project management | 54 | | [core](https://github.com/runcitadel/core) | The core of Citadel | 55 | | [dashboard](https://github.com/runcitadel/dashboard) | Current frontend | 56 | | [middleware](https://github.com/runcitadel/middleware) | Communication with bitcoin & lightning implementations | 57 | | [manager](https://github.com/runcitadel/manager) | Manages containers, authentication & misc. | 58 | | [sdk](https://github.com/runcitadel/sdk) | Library to connect applications to Citadel | 59 | | [apps](https://github.com/runcitadel/apps) | Free, open source apps available on Citadel | 60 | | [citadel-dev](https://github.com/runcitadel/citadel-dev) | CLI tool to spin up instances of Citadel in a Docker container | 61 | 62 | ## Contributing 63 | 64 | We welcome and appreciate new contributions! The best way to get started is to reach out to us on [Telegram](https://t.me/runcitadel). 65 | 66 | ## License 67 | 68 | Citadel is licensed under the GNU Affero General Public License v3.0 or later. 69 | 70 | It includes code from `umbrel-os` and `pi-gen`, which are 71 | 72 | ``` 73 | Copyright (c) 2015 Raspberry Pi (Trading) Ltd. 74 | Copyright (c) 2020 Umbrel. https://getumbrel.com/ 75 | ``` 76 | 77 | Additionally, the current dashboard contains code from [Casa](https://github.com/Casa/V2-Casa-Node-UI) and [Umbrel](https://github.com/getumbrel/umbrel-dashboard). 78 | 79 | --- 80 | 81 | _"Being open source means anyone can independently review the code. If it was closed source, nobody could verify the security. I think it's essential for a program of this nature to be open source." — Satoshi Nakamoto_ 82 | 83 | [![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL%203.0-blue.svg)](https://opensource.org/licenses/AGPL-3.0) 84 | -------------------------------------------------------------------------------- /lnme.svg: -------------------------------------------------------------------------------- 1 | 2 | 18 | 41 | lnme 43 | 45 | 51 | 55 | 59 | 60 | 66 | 70 | 74 | 75 | 81 | 85 | 89 | 93 | 97 | 98 | 106 | 110 | 114 | 115 | 123 | 127 | 131 | 132 | 140 | 144 | 148 | 149 | 157 | 161 | 165 | 169 | 173 | 174 | 182 | 186 | 190 | 194 | 198 | 199 | 205 | 209 | 213 | 214 | 223 | 224 | 227 | 236 | 241 | 246 | 247 | 249 | 250 | 252 | lnme 253 | 254 | 255 | 256 | 257 | -------------------------------------------------------------------------------- /lnme-citadel.svg: -------------------------------------------------------------------------------- 1 | 2 | 18 | 41 | lnme 43 | 45 | 51 | 55 | 59 | 60 | 66 | 70 | 74 | 75 | 81 | 85 | 89 | 93 | 97 | 98 | 106 | 110 | 114 | 115 | 123 | 127 | 131 | 132 | 140 | 144 | 148 | 149 | 157 | 161 | 165 | 169 | 173 | 174 | 182 | 186 | 190 | 194 | 198 | 199 | 205 | 209 | 213 | 214 | 224 | 225 | 234 | 240 | 246 | 248 | 249 | 251 | lnme 252 | 253 | 254 | 255 | 256 | --------------------------------------------------------------------------------