Bookery is a multiplatform app that in general stands for a cloud drive. It uses hierarchical storage, supports basic operations like upload/download/rename/delete, and supports sharing. It is possible to share and hide nodes (folders or files) recursively.
This project contains microservices that handle all app activities. All of them are containerized with Docker Compose
but some use Azure
services, make sure you have a valid subscription if you decide to run the project.
Also, there is a Xamarin
client app for this project.
All microservices run on .NET Core 6.0.
- Ocelot as a gateway
- JWT validation
- JWT issuing, refresh, sign out
- Azure Tables as identity source
- MSSQL Server in container
- Azure Blobs
- MSSQL Server in container
- Azure Tables for providing new identity
- RabbitMQ in container
- Docker Compose
Linux
-
Verify installation of
Docker
andDocker Compose
:docker version && docker compose version
-
Clone the repository:
git clone https://github.com/VengerAndrey/Bookery.git
-
Navigate inside the repository directory:
cd Bookery
-
Replace Azure Storage connection string in
appsettings.json
files inBookery.Node
,Bookery.User
andBookery.Storage
. -
Start microservices with the command:
docker compose up -d
-
Wait a few seconds after containers are created and then access API at
localhost:5100
. -
To clean up run:
docker compose down -v --rmi all --remove-orphans
Make sure every container is up by running the following command in the root directory:
docker compose ps
If some of the services have a state different from running
you should run them manually:
docker compose up <service> -d
If you use Linux and get Docker daemon error similar to the following:
Got permission denied while trying to connect to the Docker daemon socket at unix
/var/run/docker.sock: connect: permission denied
Consider running the command:
sudo chmod 666 /var/run/docker.sock