Skip to content

aisa-it/aiplan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

729 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

License: MPL 2.0 en ru telegram

AIPlan - An open-source project management system

Get to know AIPlan, a professional project management platform that helps teams track tasks, make phone calls, maintain documentation, and produce a high—quality product. The product provides convenient tools for planning, tracking, and completing tasks, as well as for teamwork within a team. The system is designed for small, medium-sized teams and for large organizations that seek to optimize work processes, improve communication and increase productivity.

You can easily transfer your work from Jira, as the AIPlan implements simple and convenient project import from Jira. The built-in AIDoc documentation management system offers an analog of Confluence with a convenient editor and the ability to collaborate on documents.

The AIPLAN is constantly being improved. Your suggestions and bug reports help us to become better. Create support requests. https://t.me/aiplan_faq .

🌟 Key features

  1. Task Management:
    • Transfer all your tasks from Jira in a few clicks.
    • Create tasks with deadlines, priorities, and responsible persons.
    • The ability to link tasks to each other for more detailed planning.
    • Assigning roles and access rights to project participants.
    • Real-time task completion status tracking.
  2. Working on documents:
    • The ability to create and store documents directly in the system.
    • A convenient text editor for editing documents.
    • Organize documents into folders and projects for easy access.
  3. Forms:
    • Create forms to collect feedback or data.
    • Generation of unique links to forms that can be sent to users (both within the team and to external participants).
    • Automatic saving of the received data in the system.
  4. Calendar:
    • An interactive calendar for viewing all tasks and activities by day, week or month.
    • The ability to filter tasks by responsible persons, projects or statuses.
  5. Video Calls and Conferences:
    • Built-in video calling tool directly in the system.
    • The ability to organize meetings with team members without the need to use third-party applications.
    • Screen interaction support: screen demonstration during calls.
    • Record meetings for later viewing or analysis.
  6. Integration:
    • The ability to export data in formats .docx, .pdf.
    • The ability to import data from Jira.
  7. Reports and analytics:
    • Tracking user activity on projects.
  8. Notifications and Reminders:
    • Customizable notifications about new tasks and any changes to them.
    • Support for notifications via email, Telegram and within the system.

📝 Documentation

If you have any questions and for a detailed study of the product's capabilities, you can always refer to the User's Manual, which you will find inside the product.

How to install

The configuration can be done either by environment variables (.env file) or via JSON configuration file.

Using environment variables (.env file)

docker-compose up -d

Using JSON configuration file

You can also use a JSON configuration file with the -configPath flag:

docker-compose run --rm server ./aiplan -configPath /path/to/config.json

A template JSON configuration file is available at config_template.json in the project root.

  • The application will be available at http://localhost:8080
  • Default user (superuser) email: DEFAULT_EMAIL; password: password123

Configuration System

AIPlan supports multiple configuration methods with the following priority (from highest to lowest):

  1. JSON configuration file (via -configPath flag)
  2. Environment variables (.env file)
  3. Default values

When using the -configPath flag, configuration values are loaded from the specified JSON file first, then any missing values are loaded from environment variables. This allows for flexible deployment scenarios where you might want to store configuration in a separate file or use environment variables for sensitive data like passwords.

Configuration Template

A complete configuration template with all available options can be found in config_template.json in the project root. This template includes all configurable parameters with their default values.

For a working example with typical values, see config_example.json in the project root. This example demonstrates how to configure AIPlan for local development with common settings.

Storage Logic

The system uses Minio/S3 for file storage when configured. If Minio/S3 is unavailable or not configured, it falls back to local file storage using the directory specified in ASSETS_PATH (default: assets).

Application Parameters

Parameter Description Type
SECRET_KEY The key for generating JWT tokens. string
AWS_REGION Minio region string
AWS_ACCESS_KEY_ID minio login string
AWS_SECRET_ACCESS_KEY minio password string
AWS_S3_ENDPOINT_URL Path to minio string
AWS_S3_BUCKET_NAME Name of the minio bucket string
ASSETS_PATH Path to local assets directory for file storage (used when Minio/S3 is not configured) string
DATABASE_URL DSN of the database string
DEFAULT_EMAIL Email of the standard user (password password123 at creation) string
EMAIL_ACTIVITY_DISABLED Disabling sending notifications to bool
EMAIL_HOST Path to the mail server string
EMAIL_HOST_USER Mail server login string
EMAIL_HOST_PASSWORD Mail server password string
EMAIL_PORT Mail server port int
EMAIL_FROM Mailing list email string
EMAIL_WORKERS Number of parallel mail notification handlers of the application int
WEB_URL External address of the application string
JITSI_DISABLED Disabling jitsi bool
JITSI_URL Address of the jitsi conferences string
JITSI_JWT_SECRET Secret key for jitsi auth JWT token string
JITSI_APP_ID Jitsi app ID for JWT iss field string
FRONT_PATH The path to the compiled front (if specified, the back will return static) string
NOTIFICATIONS_PERIOD Time period of a batch of email notifications int
TELEGRAM_BOT_TOKEN Telegram bot token string
TELEGRAM_COMMANDS_DISABLED Disabling telegram bot commands bool
SESSIONS_DB_PATH Path to the session database file string
SIGN_UP_ENABLE Enabling registration in the bool
DEMO Demo mode bool
SWAGGER Enabling the Swagger API documentation at /api/swagger bool
NY_ENABLE Enabling the New Year theme bool
CAPTCHA_DISABLED Disabling captcha bool
EXTERNAL_LIMITER_URL External rate limiter URL string
EXTERNAL_MEMDB External memory database URL string
LDAP_URL LDAP server URL for authentication string
LDAP_BASE_DN Base DN for LDAP search string
LDAP_BIND_DN Bind DN for LDAP authentication string
LDAP_BIND_PASSWORD Bind password for LDAP authentication string
LDAP_FILTER LDAP filter for user search (default: (&(uniqueIdentifier={email}))) string
LDAP_FORCE Force LDAP authentication even if user exists locally bool
MCP_ENABLED Enabling Model Context Protocol (MCP) bool

nginx SSL example

server {
    listen 80;
    server_name aiplan.domain;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name aiplan.domain;

    ssl_certificate     /etc/ssl/certs/fullchain.pem;
    ssl_certificate_key /etc/ssl/private/privkey.pem;


    client_max_body_size 50M;

    location / {
        # we proxy directly to the container if it was launched in the same docker-compose with the same network, otherwise we change to the container IP/machine IP/localhost
        proxy_pass http://server:8080;
        proxy_http_version 1.1;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Development:

docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up --build

or shorthand:

docker compose -f docker-compose.{yaml,dev.yaml} up --build

Command Line Flags

When running the application directly (not through Docker), you can use the following command line flags:

Flag Description Default
-configPath Path to JSON configuration file "" (disabled)
-noTranslate Turn off database errors translation false
-paramQueries Mask query parameters in logs true
-noMigration Turn off database migration false
-trace Enable verbose logs and SQL trace false

Example usage:

./aiplan -configPath /path/to/config.json -trace

This is useful for development and debugging scenarios where you need more control over the application behavior.

About

AIPlan is an open source project management system. Import your work from Jira, use AIDoc instead of Confluence. Create workspaces and invite partners to cooperate. Form teams and solve problems.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages