本文最后更新于 2025-06-17,文章内容可能已经过时。

在数字化办公与远程协作日益普及的今天,时间管理已成为提升效率的核心挑战。无论是自由职业者记录工时,还是企业团队协调复杂项目,精准追踪时间与数据可视化分析的需求愈发迫切。而传统工具如Toggl、Clockify虽功能强大,却存在费用高昂或数据自主性不足的问题。

SolidTime作为一款现代开源时间追踪工具,凭借其NAS+Docker轻量化部署、多维度项目管理和无缝数据迁移等特性,正在成为中文用户的新宠。

以下从功能特性、技术优势及部署实践角度,全面解析这一工具如何助力效率革命。

为什么选择SolidTime?六大核心优势直击痛点

1️⃣ 开源免费,自主掌控数据

  • SolidTime基于MIT协议开源,代码透明可审计,用户可自由部署于私有NAS环境,彻底告别SaaS服务的数据隐私担忧。通过Docker容器化技术,仅需一条命令即可快速搭建,节省服务器资源的同时,保障7x24小时稳定运行。

2️⃣ NAS+Docker:私有化部署的最佳拍档

  • 针对NAS用户,SolidTime提供完善的Docker支持。无论是群晖、飞牛、威联通还是绿联私有云,均可通过Portainer或命令行一键部署,无需公网IP即可实现局域网高效访问。结合花生壳等内网穿透工具,更可拓展至远程团队协作场景。

3️⃣ 精细化时间管理,覆盖全场景需求

  • 多层级项目架构:支持“客户-项目-任务”三级划分,适配敏捷开发、设计协作等多种工作流。

  • 智能计时与报表:自动生成可视化图表,支持按团队、项目、周期导出CSV/PDF,无缝对接财务结算。

  • 角色权限管控:为管理员、成员、客户分配差异化的数据查看与操作权限,确保信息安全。

4️⃣ 无缝迁移,告别数据孤岛

  • 支持从Toggl、Clockify等平台一键导入历史数据,减少迁移成本。开放API接口,可与Jira、Slack等第三方工具联动,构建一体化工作台。

5️⃣ 开发者友好,高扩展性架构

  • 基于Laravel框架与PHP 8.3构建,集成PHPStan Level 7代码规范,保障系统稳定性。前端采用Vue.js实现响应式设计,开发者可轻松定制界面或开发插件。

6️⃣ 低成本高回报,优化团队ROI

  • 开源特性节省软件采购费用,NAS部署降低服务器成本。据统计,使用SolidTime的中小团队平均节省40%的时间管理支出,项目交付效率提升25%。

应用场景:谁需要SolidTime?

👨💻 自由职业者

  • 精准记录各客户项目的耗时,生成专业账单。

  • 通过时间分布分析,优化工作重心,提升单位产值。

  • 更可记录个人网单业务进度,提高工作效率。

👩💼 中小企业与工作室

  • 实时监控团队工时投入,避免资源浪费。

  • 结合多费率设置(如普通时段/加班费率),自动化计算人力成本。

🏢 大型企业与远程团队

  • 跨部门、跨时区协作时,统一时间数据标准。

  • 通过权限隔离,保护敏感项目信息(如竞标方案、研发进度)。

SolidTime 初体验:让工时管理像追剧一样上头

想象一下,每次打开电脑,你点开 SolidTime,界面秒加载,点击“启动计时”,秒表立刻跑起来——就像开了外挂一样给力。

  • 轻量又灵动:PWA 技术加持,无论是在手机端还是桌面端,都能像原生 App 一样流畅使用,还支持二维码扫一扫直达,无需安装冗余客户端。

  • 秒级精准:手动/全局命令菜单随心切换,秒表级别记录让你再也不用纠结“这活儿到底做了多久。

项目·任务·客户,一站式管理不再抓瞎

例如自媒体人最头疼的是素材、剪辑、运营等多任务并行,而 SolidTime 刚好帮你拆解:

  • 项目管理:搞活动、拍视频、写文案……统统造个“项目”,让进度一目了然。

  • 任务拆分:素材整理、视频剪辑、运营排期……细到每个小步骤都有独立条目,配合标签还能快速筛选。

  • 客户/渠道:对接品牌方、接洽广告、社交平台运营……都能在“客户”中统一管理,生成报告时分分钟按渠道导出。

NAS部署实战:搭建专属时间管理系统

Docker Compose方式安装

  1. 演示以在群晖NAS系统上安装为例
    (其他系统请自行安装好最新版本Docker、docker compose)

  2. 打开群晖的SSH功能,使用终端软件进行连接,并切换到root状态下。
    DSM open SSH.png

  3. 点击docker共享文件夹>右键>常规>复制文件夹位置路径
    DSM copy docker.png

  4. 在终端内执行命令进入群晖的docker文件夹(你想将容器数据存储到哪就进哪个文件夹)
    (其他NAS系统的可直接看下一步,手动创建一个文件夹再右键文件夹查看属性,复制文件夹路径进入。)

    # 将/volume1/docker换成你自己的文件夹路径
    
    cd /volume1/docker
  5. 创建项目文件夹及子文件夹

    mkdir -p solidtime/{logs,app-storage}
  6. 进入项目文件夹

    cd solidtime
  7. 编辑docker-compose.yml模板文件

    vi docker-compose.yml
  8. 按字母i键进入编辑模式,复制并修改下面的配置文件,粘贴到终端,按Esc键退出编辑模式,输入:wq保存并退出。
    (排版太挤的就先粘贴到文本文件内,修改后再使用,灵活应变。)

    services:
      app:
        restart: always
        image: "solidtime/solidtime:${SOLIDTIME_IMAGE_TAG:-latest}"
        user: "1000:1000"
        ports:
          - '${FORWARD_APP_PORT:-8000}:8000'
        networks:
          - internal
        volumes:
          - "app-storage:/var/www/html/storage"
          - "./logs:/var/www/html/storage/logs"    # 可将左侧的./logs换成完整的NAS文件夹路径
          - "./app-storage:/var/www/html/storage/app"    # 可将左侧的./app-storage换成完整的NAS文件夹路径
        environment:
          CONTAINER_MODE: http    # 使用HTTP协议,改成HTTPS则会强制要求跳转到HTTPS。
          AUTO_DB_MIGRATE: "true"    # 在每次更新solidtime应用程序时执行自动迁移数据库表,关闭则改成false。
        healthcheck:
          test: [ "CMD-SHELL", "curl --fail http://localhost:8000/health-check/up || exit 1" ]
        env_file:
          - laravel.env
        depends_on:
          - database
      scheduler:
        restart: always
        image: "solidtime/solidtime:${SOLIDTIME_IMAGE_TAG:-latest}"
        user: "1000:1000"
        networks:
          - internal
        volumes:
          - "app-storage:/var/www/html/storage"
          - "./logs:/var/www/html/storage/logs"    # 可将左侧的./logs换成完整的NAS文件夹路径
          - "./app-storage:/var/www/html/storage/app"    # 可将左侧的./app-storage换成完整的NAS文件夹路径
        environment:
          CONTAINER_MODE: scheduler
        healthcheck:
          test: [ "CMD-SHELL", "supervisorctl status scheduler:scheduler_00" ]
        env_file:
          - laravel.env
        depends_on:
          - database
      queue:
        restart: always
        image: "solidtime/solidtime:${SOLIDTIME_IMAGE_TAG:-latest}"
        user: "1000:1000"
        networks:
          - internal
        volumes:
          - "app-storage:/var/www/html/storage"
          - "./logs:/var/www/html/storage/logs"    # 可将左侧的./logs换成完整的NAS文件夹路径
          - "./app-storage:/var/www/html/storage/app"    # 可将左侧的./app-storage换成完整的NAS文件夹路径
        environment:
          CONTAINER_MODE: worker
          WORKER_COMMAND: "php /var/www/html/artisan queue:work"
        healthcheck:
          test: [ "CMD-SHELL", "supervisorctl status worker:worker_00" ]
        env_file:
          - laravel.env
        depends_on:
          - database
      database:
        restart: always
        image: 'postgres:15'
    #    ports:    # 如果要对外暴露数据库端口就把这行取消注释
    #      - '${FORWARD_DB_PORT:-5432}:5432'    # 如果要对外暴露数据库端口就把这行取消注释
        environment:
          PGPASSWORD: '${DB_PASSWORD:-secret}'
          POSTGRES_DB: '${DB_DATABASE}'
          POSTGRES_USER: '${DB_USERNAME}'
          POSTGRES_PASSWORD: '${DB_PASSWORD:-secret}'
        volumes:
          - 'database-storage:/var/lib/postgresql/data'
        networks:
          - internal
        healthcheck:
          test:
            - CMD
            - pg_isready
            - '-q'
            - '-d'
            - '${DB_DATABASE}'
            - '-U'
            - '${DB_USERNAME}'
          retries: 3
          timeout: 5s
      gotenberg:
        image: gotenberg/gotenberg:8
        networks:
          - internal
        healthcheck:
          test: [ "CMD", "curl", "--silent", "--fail", "http://localhost:3000/health" ]
    networks:
      internal:
    volumes:
      database-storage:
      app-storage:
  9. 创建.env环境变量文件

    vi .env
  10. 按字母i键进入编辑模式,复制并修改下面的配置文件,粘贴到终端,按Esc键退出编辑模式,输入:wq保存并退出。
    (排版太挤的就先粘贴到文本文件内,修改后再使用,灵活应变。)

    APP_DOMAIN=your-domain.com    # 将your-domain.com改成你的域名访问地址,或者局域网的访问地址,例如http://NAS的IP地址:8000
    DB_DATABASE=solidtime    # 右侧的solidtime是数据库名,建议默认。
    DB_USERNAME=solidtime    # 右侧的solidtime是数据库用户名,建议默认。
    FORWARD_APP_PORT=8000    # 右侧的8000是项目容器访问端口,建议默认。
    FORWARD_DB_PORT=5432    # 右侧的5432是数据库的端口,建议默认。
    DB_PASSWORD=randompassword    # 右侧的randompassword是数据库密码,可改。
    SOLIDTIME_IMAGE_TAG=latest    # 右侧的latest是指docker镜像的版本,默认latest。(最新发布的)
  11. 创建laravel.env环境变量文件

    vi laravel.env
  12. 按字母i键进入编辑模式,复制并修改下面的配置文件,粘贴到终端,按Esc键退出编辑模式,输入:wq保存并退出。
    (排版太挤的就先粘贴到文本文件内,修改后再使用,灵活应变。)

    # 下面的配置示例适用于使用 HTTP 的环境,您可以根据需要调整值。
    # 不清楚的就不动,只改必要的。
    
    APP_NAME="solidtime"
    VITE_APP_NAME="solidtime"
    APP_ENV="production"
    APP_DEBUG="false"
    APP_URL="https://your-domain.com"    # 将https://your-domain.com改成你的域名访问地址,或者局域网的访问地址,例如http://NAS的IP地址:8000
    APP_FORCE_HTTPS="false"   # 改成true是启用强制跳转到https
    TRUSTED_PROXIES="0.0.0.0/0,2000:0:0:0:0:0:0:0/3"
    
    # Authentication
    APP_KEY=""    # 应用程序密钥主要用于加密会话 cookie(看教程下一步骤填写进去)
    PASSPORT_PRIVATE_KEY=""    # OAuth 服务器的私钥(看教程下一步骤填写进去)
    PASSPORT_PUBLIC_KEY=""    # OAuth 服务器的公钥(看教程下一步骤填写进去)
    SUPER_ADMINS=""    # 如果您希望第一个用户成为超级管理员,则可以将电子邮件地址添加到这里。
    
    # Logging    将日志存储在 storage/logs 下的文件中,每天一个日志文件。使用daily减少无用日志,尤其适合正式部署。
    LOG_CHANNEL="daily"
    LOG_LEVEL="debug"
    
    # Database     请记住,solidtime 仅支持 PostgreSQL。
    DB_CONNECTION="pgsql"
    DB_HOST="database"
    DB_PORT="5432"
    DB_SSLMODE="require"
    DB_DATABASE="solidtime"
    DB_USERNAME="solidtime"
    DB_PASSWORD="randompassword"    # 将randompassword改成你设置的数据库密码
    
    # Mail     配置用于发送电子邮件的电子邮件设置。Solidtime 支持提供 SMTP 集成的每一种(事务性)邮件服务。
    MAIL_MAILER="smtp"
    MAIL_HOST=""
    MAIL_PORT=""
    MAIL_ENCRYPTION="tls"
    MAIL_FROM_ADDRESS="no-reply@your-domain.com"
    MAIL_FROM_NAME="solidtime"
    MAIL_USERNAME=""
    MAIL_PASSWORD=""
    
    # Queue     数据库:请记住,您需要一个单独的 Queue Worker(例如容器,请参阅 容器模式)来异步处理排队的作业才能使用此配置选项。
    QUEUE_CONNECTION="sync"    # 使用sync或者database
    
    # File storage    本地磁盘
    FILESYSTEM_DISK="local"    # 私有文件的文件系统磁盘
    PUBLIC_FILESYSTEM_DISK="public"    # 用于公共文件(例如个人资料图片)的文件系统磁盘
    
    # Services    如果要使用创建 PDF 的 solidtime 功能(如将报表导出为 PDF),则需要配置 PDF 渲染服务器。
    GOTENBERG_URL="http://gotenberg:3000"
  13. 执行命令,生成laravel.env文件中所需要的APP_KEYPASSPORT_PRIVATE_KEYPASSPORT_PUBLIC_KEY密钥。

    docker-compose run scheduler php artisan self-host:generate-keys
    
    或者
    
    docker compose run scheduler php artisan self-host:generate-keys
    
    
    # 演示下面是生成的密钥文件(密钥在这三段的“ ”内)
    Container mode: scheduler
    APP_KEY="base64:YkHyWZC9EkmK6+YLxHMzS18bGUBNnPQ/Spa9NDxXtUw="
    PASSPORT_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n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\n+rkHrX7iT7Ul8Ik7NFBDnPMrKSldpEQ=\n-----END PRIVATE KEY-----"
    PASSPORT_PUBLIC_KEY="-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA7Gso69szWdGtPef8SuUa\neuGzw2uaX3ilStQBEJdz0ytOzeat7HIfr6Xs0p3zo5z5LWHes1MrwV/LTLeXzCW2\nFcVZFoB+lpiII4Iy6xij3aia0cZlpIhCfN0u7NI6S8t4zm4KwGrpM+CnFu6R2k1N\nLYoUK/cfUPsGDwZ65b64v41X00PCJ28it23anoO2rz6EsxGPdVxbCjTEcCAzYPaq\nflmFZDF8q9xhoubsJac1+UqbTe1/98QCpi/wZxklUFINSzU05PTCz7+WkPH+tz5D\nSPMo8cktpvDS7edAIrRadlO3bIuQ3Tou2Izu6CePWxHg6M46YRNWa5cG0envevZS\nxs6QL2UE9A85XJ0c7k4ivFq2cKT0437b8GFgFOWZW94cYXXkVESFbLdoSU4ioO9L\nEvw6K43nPvkeqYG/cGFUfEzyy1bcTz+nhdW2YrvEBRCcvJ9jsU4UqktrLUAFDYAD\nrcNgTJ9laXG7S1hVsku/BeRRNzyP0F9RkZY5v3VAY2PA1oxt6z1it16zOWla5wFM\nYb2Xwjo1CcYVBJ6CYeoTyqJW319pjMUqHAzJ6IisL1zIRPZrNtUoTKlWx6uEnIvT\nKfSzLriHLCoFSB8Y/0hndke35VHQ0DaPQoP8sMggiW0scrdMqdyaqdL7rU2pjg2N\ntEtAHZF6DhMZO9aEnVD/tgUCAwEAAQ==\n-----END PUBLIC KEY-----"
    
  14. 重新编辑laravel.env文件,把生成的三个密钥填入对应的位置。
    按字母i键进入编辑模式,修改配置文件,按Esc键退出编辑模式,输入:wq保存并退出。

    vi laravel.env
  15. 查看当前项目文件夹路径

    pwd
  16. 授权该项目文件夹内的读写权限(部分NAS系统需要【如群晖】,否则容器无读写权限访问运行,按需执行。)

    chmod -R 777 /volume1/docker/solidtime/
  17. 执行命令,启动docker-compose模板文件,拉取镜像并创建容器。

    docker-compose up -d
    
    或
    
    docker compose up -d
  18. 查看正在运行的项目容器

    docker-compose ps
    
    或
    
    docker compose ps
  19. 查看正在运行的项目容器实时日志,按Ctrl+C中断查看。

    docker-compose logs -f
    
    或
    
    docker compose logs -f

迁移数据库

  1. 要创建数据库表,您需要运行迁移。您可以通过运行以下命令来执行此作:

    docker-compose exec scheduler php artisan migrate --force
    
    或者
    
    docker compose exec scheduler php artisan migrate --force
  2. 需要在每次更新 solidtime 应用程序后执行此操作(前面的docker-compose.yml文件中已设置)

配置账户

  1. 打开浏览器,以NAS的IP+设置的端口进行访问。
    以本机为例:http://172.16.19.200:8000

  2. 执行命令,创建超级管理员账户(在laravel.env文件中设置的邮箱,在这里输入,则为超级管理员。)

    # 假设你要创建一个叫 S20306 的管理员,邮箱是 S20306@qq.com,那么命令应该改成:
    # docker-compose exec scheduler php artisan admin:user:create "S20306" "S20306@qq.com" --verify-email
    
    
    docker-compose exec scheduler php artisan admin:user:create "Firstname Lastname" "firstname.lastname@some-email-provider.test" --verify-email
    
    或者
    
    docker compose exec scheduler php artisan admin:user:create "Firstname Lastname" "firstname.lastname@some-email-provider.test" --verify-email
  3. 该命令会让系统根据你填写的信息自动生成一个登录账户,为用户输出一个随机密码。
    之后,您需要重新启动容器,执行下面的命令。

    docker-compose down && docker-compose up -d
    
    或者
    
    docker compose down && docker compose up -d
  4. 使用邮箱和随机密钥进行登录,登录成功。(看不懂的咱们就网页翻译,一秒钟的事情。)

  5. 点击Settings>Currency>将货币改成人民币>Save保存。

  6. 点击Profile Settings>Timezone>将时区改成上海>Save保存。

  7. 剩下的就是你自己进行愉快的使用了,不会用怎么办?打开浏览器搜索:SolidTime教程

相关地址

文末

👇👇👇