## Minimal Hardware Requirements
- a CPU *would be nice* but we can technically run on a mainframe too.
- At least 2MHz though. We need a speedy boi
- Some memory. The stick you found in your attic is fiiine
- 30MB should be enough. But if you want to *really* sure, make that 40MB
- A network card. Any one is fine if it speaks Ethernet even better but your old bus card is dandy too
or if building a custom PC just so you can run FabAccess is too much effort;
**a Raspberry Pi is fine**. Any one really.
Android SDK Version: 21
iOS Version: 13
Windows 10: 1709 - Build:16299
## Internal Release
Internal Release is only for our Space to develop FabAccess and distribute the Server and the Client easier to our users.
We keep everything Open Source, but we not want to fear your users with to many bugs.
## Beta Release
To not overcomplicate our CI/CD and developent process this acctual "Beta" is more an "Alpha" for intreseted testers.
### Install the Server Part
#### Option 1. `rustup && cargo install`
* Newest & greatest
* Feel the thrill of untested software running *very* close to the metal breaking all of your expensive hardware!
* Works on ~all Linux distros
* Yes that includes SUSE 4.1, Debian 1.0 and LFS \<yourversionhere>
* Probably works on BSD
* Maaaaaybe even works on MacOS
* Compiling BFFH takes quite a while.
* Source + Binaries + rustc total to ~17G
* 16 of which are bffh + deps
1. Install [rustup.rs](rustup.rs). Distribution packages for rustc are generally way too old
1. `$ rustup install stable`
1. Get yourself a directory to clone BFFH into
* If you put this dir on a SSD you can speed up build times by 5-10 times.
1. `git clone --recursive --branch stable`
* ... stable ... TODO...
* You can also check out the `development` branch but keep in mind that until Beta it has no stability guarantee. It may work. It may make you a sandwich. But it may also set your hat on fire and fill your shoes with orange juice. *You have been warned*.
1. `cargo install --path .`
* if you add `--debug` you get a debug build. It gives you much more logging output but it's slower to run and is almost spammy
1. Make yourself a coffee. Or tea. Or open $beverage of your choice. You earned it! (And you'll be looking at "**Compiling** <stuff>" for a while.)
* If you get `error: failed to run custom build command for 'gsasl-sys v0.2.3'` or something like that with the stderr output reading "[…]Unable to find libclang[…]":
* `export LIBCLANG_PATH=/usr/lib`
Or wherever `libclang.so` is installed on your computer. It's usually `/usr/lib/libclang.so` or `/usr/lib/llvm/12/lib/libclang.so` or similar. If you can't find it, consult your package manager
* If you get any other error open an issue
#### Option 2. ~~Debian~~ ~~Arch~~ ~~Gentoo~~ ~~Fedora~~ packages
* It just werks™
* May be outdated.
1. If you happen to maintain packages for any of those, do give us a hand! We'd love to have this package in the AUR, in an Debian user repo, in an overlay or in a custom RPM store.
#### Option 3. Docker
* It just werks™ even harder than Option 2
* You have to *install* Docker.
* You have to *use* Docker.
* Did I mention that one big downside is Docker?
1. Install Docker
On Raspberry Pi: https://phoenixnap.com/kb/docker-on-raspberry-pi
2. Install Docker-Compose
On Raspberry Pi: https://dev.to/elalemanyo/how-to-install-docker-and-docker-compose-on-raspberry-pi-1mo
4. `git clone https://gitlab.com/fabinfra/fabaccess/dockercompose.git`
The Dockerfile is in the root directory of the main repo
docker-compose.yml is available in a seperate [git repo](https://gitlab.com/fabinfra/fabaccess/dockercompose)
4. Edit config files in `config` folder to taste
5. `docker-compose up -d`
To make it eaysier to apply youre changes in your config and keep the dockercompose uptodate, you should "fork" this respository.
### Install the Client Part
Currently only UWP, Android and iOS are directly supported.
#### Option 1. Platform App Store
#### Option 2. Build localy
Follow build instructions