Skip to content

Publish your company Active Directory users information as an address book

License

Notifications You must be signed in to change notification settings

vaassi/addressbook

Repository files navigation

AddressBook

Centralized endpoint for storing users contacts.

Active Directory attributes that app is looking for:

  • "name"
  • "employeeNumber"
  • "mail"
  • "telephoneNumber"
  • "mobile"
  • "birthdate" (custom attribute)
  • "company"
  • "department"
  • "title"
  • "c"
  • "postalCode"
  • "st"
  • "l"
  • "streetAddress"

Main window

AddressBook

Details window

AddressBook

Here's why

  • Easy installation (standalone binary, docker)
  • Cross-platform
  • Integrated with Active Directory
  • Search autocomplete
  • Favorite list
  • Birthday indication

Built With

  • WebAssemply
  • Bootstrap
  • JQuery

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

  • Installing Rust
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Install WebAssembly target
    rustup target add wasm32-unknown-unknown
  • Fix for OpenSSL trunk (windows)
    mkdir \Tools
    cd \Tools
    git clone https://github.com/Microsoft/vcpkg.git
    cd vcpkg
    .\bootstrap-vcpkg.bat
    .\vcpkg.exe install openssl:x64-windows-static
    
    $env:OPENSSL_DIR = 'C:\Tools\vcpkg\installed\x64-windows-static'
    $env:OPENSSL_STATIC = 'Yes'
    [System.Environment]::SetEnvironmentVariable('OPENSSL_DIR', $env:OPENSSL_DIR, [System.EnvironmentVariableTarget]::User)
    [System.Environment]::SetEnvironmentVariable('OPENSSL_STATIC', $env:OPENSSL_STATIC, [System.EnvironmentVariableTarget]::User)
  • Install Trunk, Make
    cargo install trunk
    cargo install cargo-make

Installation

  1. Clone the repo
    git clone https://github.com/vaassi/addressbook.git
  2. Create .env file base on .env.example
  3. Run cargo-make
    cargo make
  4. Copy in separate folder ./target/release/addressbook.exe, static folder, .env file
  5. Create assets folder in static dir and put contacts photo base on employeeNumber attribute, f.e. 12345.jpg
  6. Start addressbook.exe go to http://your_url/api/sync for initial synchronization, wait till get success, this url must be added to cron with schedule you want

For Docker users

docker build -t addressbook:0.1.0 .
docker run -d --name addressbook --env-file=.env \
  -p 3000:3000 \
  -v ./data/data.sqlite:/opt/app/data.sqlite \
  -v ./data/assets:/opt/app/static/assets \
  vaassi/addressbook:0.1.0

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE.txt for more information.