Skip to content

CA17/TeamsACS

Repository files navigation

Welcome to TeamsACS project!

  _____                                    ___     ___     ___   
 |_   _|   ___    __ _    _ __     ___    /   \   / __|   / __|  
   | |    / -_)  / _` |  | '  \   (_-<    | - |  | (__    \__ \  
  _|_|_   \___|  \__,_|  |_|_|_|  /__/_   |_|_|   \___|   |___/  
_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""| 
"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-' 

image

TeamsACS

TeamsACS is committed to providing superior ease of network management for work teams. We use Mikrotik's networking products as the base core.

TeamsACS is a TR069 Auto-configuration server (ACS) specially designed for Mikrotik devices, which is designed to help administrators manage and configure Mikrotik devices remotely through the TR069 protocol

The core of the system is based on Golang technology, providing superior performance and an easy deployment experience.

TeamsACS uses Timescaledb as the primary data store, supporting time-series data and providing support for system observability

  • TR069-based device management

TeamsACS implements the TR069 protocol server, supports Mikrotik as a TR069 protocol client for secure access, and supports Mikrotik TR069 private features, supports configuration reading and modification, and supports uploading Mikrotik script files for execution.

  • Device Backup Management

The TR069 protocol enables Mikrotik devices to be backed up regularly and then downloaded to the TeamsACS file system for unified management, and supports backup restoration via TR069.

Northbound Interface

  • Provide a unified API for various third-party management systems, based on the HTTPS Json protocol.
  • Provide basic equipment information and status data query API, and data maintenance API.
  • Provide various policy management APIs, such as firewall rules, routing tables, etc.

Quick Start

TeamsACS uses PostgreSQL as its primary database and uses the Timescaledb extension

  • Create Database
    CREATE USER teamsacs WITH PASSWORD 'teamsacs'
    
    CREATE DATABASE teamsacs OWNER teamsacs;
    
    GRANT ALL PRIVILEGES ON DATABASE teamsacs TO teamsacs;
  • Install TeamsACS

The following installation method will download and build the latest teamsacs version

go install github.com/ca17/teamsacs@latest

teamsacs -install

If you want to download the compiled binaries directly, you can visit Github Release

  • Config TeamsACS

Modifying configuration file /etc/teamsacs.yml

Start the service with the following commands

systemctl enable teamsacs
systemctl start teamsacs

Docker Deploy

version: "3"
services:
  pgdb:
    image: timescale/timescaledb:latest-pg14
    container_name: "pgdb"
    ports:
      - "127.0.0.1:15432:5432"
    environment:
      POSTGRES_DB: teamsacs
      POSTGRES_USER: teamsacs
      POSTGRES_PASSWORD: teamsacs
    volumes:
      - pgdb-volume:/var/lib/postgresql/data
    networks:
      teamsacs_network:

  teamsacs:
    depends_on:
      - 'pgdb'
    image: ca17/teamsacs:latest
    container_name: "teamsacs"
    restart: always
    ports:
      - "2979:2979"
      - "2989:2989"
      - "2999:2999"
    volumes:
      - teamsacs-volume:/var/teamsacs
    environment:
      - GODEBUG=x509ignoreCN=0
      - TEAMSACS_DB_HOST=pgdb
      - TEAMSACS_DB_PORT=5432
      - TEAMSACS_DB_NAME=teamsacs
      - TEAMSACS_DB_USER=teamsacs
      - TEAMSACS_DB_PWD=teamsacs
      - TEAMSACS_WEB_DEBUG=1
    networks:
      teamsacs_network:

networks:
  teamsacs_network:

volumes:
  pgdb-volume:
  teamsacs-volume:

Access web console

Open the browser and enter the URL: http://your-ip:2979 or https://your-ip:2989

The default username and password are admin/teamsacs

Links

Contribute

We welcome contributions of any kind, including but not limited to issues, pull requests, documentation, examples, etc.