Files
akkounts/README.md

111 lines
3.3 KiB
Markdown
Raw Normal View History

2021-11-25 19:24:56 -06:00
[![Build Status](https://drone.kosmos.org/api/badges/kosmos/akkounts/status.svg)](https://drone.kosmos.org/kosmos/akkounts)
2020-11-18 15:28:17 +01:00
# Akkounts
2020-11-07 14:49:32 +01:00
2020-11-18 15:28:17 +01:00
This app allows Kosmos/LDAP users to manage their accounts, including
credentials, invites, donations, etc..
2020-11-07 14:49:32 +01:00
2020-11-18 15:28:17 +01:00
## Development
2020-11-07 14:49:32 +01:00
### Quick Start
The easiest way to get a working development setup is using Docker Compose like
so:
1. Make sure [Docker Compose is installed][1] and Docker is running (included in
Docker Desktop)
2. Uncomment the `web` section in `docker-compose.yml`
3. Run `docker compose up` and wait until 389ds announces its successful start
in the log output
4. `docker-compose exec ldap dsconf localhost backend create --suffix="dc=kosmos,dc=org" --be-name="dev"`
5. `docker compose run web rails ldap:setup`
5. `docker compose run web rails db:setup`
After these steps, you should have a working Rails app with a handful of test
users running on [http://localhost:3000](http://localhost:3000).
Log in with username "admin" and password "admin is admin". All users listed on
[http://localhost:3000/admin/ldap_users](http://localhost:3000/admin/ldap_users)
have the password "user is user".
2020-11-18 15:28:17 +01:00
### Rails app
2020-11-07 14:49:32 +01:00
2020-11-18 15:28:17 +01:00
Installing dependencies:
2020-11-07 14:49:32 +01:00
2020-11-18 15:28:17 +01:00
bundle install
yarn install
2020-11-07 14:49:32 +01:00
2020-11-18 15:28:17 +01:00
Setting up local database (SQLite):
2020-11-07 14:49:32 +01:00
2020-11-18 15:28:17 +01:00
bundle exec rails db:create
bundle exec rails db:migrate
2020-11-07 14:49:32 +01:00
2022-02-16 10:46:04 -06:00
Running the dev server and auto-building CSS files on change:
2020-11-07 14:49:32 +01:00
2022-02-16 10:46:04 -06:00
bin/dev
2020-11-07 14:49:32 +01:00
2021-02-02 21:15:52 +01:00
Running the background workers (requires Redis):
bundle exec sidekiq -C config/sidekiq.yml
2020-11-18 15:28:17 +01:00
Running all specs:
2020-11-07 14:49:32 +01:00
2020-11-18 15:28:17 +01:00
bundle exec rspec
### Docker (Compose)
2022-12-06 10:28:03 +01:00
There is a working Docker Compose config file, which allows you to spin up both
an app server for Rails as well as a local 389ds (LDAP) server.
By default, `docker-compose up` will only start the LDAP server, listening on
port 389 on your machine. Uncomment other services in `docker-compose.yml` if
you want to use them.
#### LDAP server
After creating the Docker container for the first time (or after deleting it),
you need to run the following command once, in order to create the dirsrv
back-end:
docker-compose exec ldap dsconf localhost backend create --suffix="dc=kosmos,dc=org" --be-name="dev"
2020-11-09 09:55:08 +01:00
2022-12-05 13:36:33 +01:00
Now you can seed the back-end with data using this Rails task:
bundle exec rails ldap:setup
The setup task will first delete any existing entries in the directory tree
("dc=kosmos,dc=org"), and then create our development entries.
2022-12-05 13:36:33 +01:00
Note that all 389ds data is stored in `tmp/389ds`. So if you want to start over
with a fresh installation, delete both that directory as well as the container.
2022-12-05 13:36:33 +01:00
2020-11-09 09:55:08 +01:00
## Documentation
2020-11-18 15:28:17 +01:00
* [Ruby on Rails](https://guides.rubyonrails.org/)
* [Sass](https://sass-lang.com/documentation)
2021-11-24 11:03:42 -06:00
### Front-end
* [Tailwind CSS](https://tailwindcss.com/)
2020-11-18 15:28:17 +01:00
### Testing
* [RSpec](https://rspec.info/documentation/)
* [Capybara](https://rubydoc.info/github/teamcapybara/capybara/master)
### LDAP / Auth
* [devise_ldap_authenticatable](https://github.com/cschiewek/devise_ldap_authenticatable)
2020-11-09 09:55:08 +01:00
* [net/ldap](https://www.rubydoc.info/gems/net-ldap/Net/LDAP)
2020-11-18 15:38:36 +01:00
2021-02-02 21:15:52 +01:00
### Asynchronous jobs/workers
* [Sidekiq](https://github.com/mperham/sidekiq/wiki/)
* [ActiveJob](https://github.com/mperham/sidekiq/wiki/Active-Job)
2020-11-18 15:38:36 +01:00
## License
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
[1]: https://docs.docker.com/compose/install/