环境配置是由Go第三方库viper来实现的。当程序启动时,viper会去读取yaml配置文件,以及将环境变量与配置文件中的变量对应起来。

    以下是yaml配置文件,其中的变量可以被以CRAWLAB_为前缀的环境变量所覆盖。

    1. api:
    2. address: "http://localhost:8000" # API 地址
    3. mongo:
    4. host: localhost # MongoDB host
    5. port: 27017 # MongoDB port
    6. db: crawlab_test # MongoDB database
    7. username: "" # MongoDB username
    8. password: "" # MongoDB password
    9. authSource: "admin" # MongoDB auth source database
    10. redis:
    11. address: localhost # Redis host
    12. password: "" # Redis password
    13. database: 1 # Redis database
    14. port: 6379 # Redis port
    15. log:
    16. level: info # Log Level
    17. path: "/var/logs/crawlab" # Log Path
    18. isDeletePeriodically: "N" # 是否定期删除日志(默认为否)
    19. deleteFrequency: "@hourly" # 删除日志频率
    20. server:
    21. host: 0.0.0.0 # 后端监听地址
    22. port: 8000 # 后端监听端口
    23. master: "Y" # 是否为主节点
    24. secret: "crawlab" # JWT secret
    25. register:
    26. # mac地址 或者 ip地址,如果是ip,则需要手动指定IP
    27. type: "mac"
    28. ip: ""
    29. lang: # 安装语言环境, Y 为安装,N 为不安装
    30. python: "Y"
    31. node: "N"
    32. java: "N"
    33. dotnet: "N"
    34. spider:
    35. path: "/app/spiders" # 爬虫路径
    36. task:
    37. workers: 4 # 同时运行任务的执行器数量
    38. other:
    39. tmppath: "/tmp" # 临时文件目录
    40. version: 0.4.7 # 版本号
    41. setting:
    42. allowRegister: "N" # 是否允许注册
    43. enableTutorial: "N" # 是否弃用教程
    44. runOnMaster: "Y" # 是否在主节点上运行任务
    45. demoSpiders: "N" # 是否加载demo爬虫
    46. checkScrapy: "Y" # 是否自动检查Scrapy
    47. notification: # 消息通知
    48. mail: # 邮箱通知
    49. server: '' # SMPT 服务器地址
    50. port: '' # SMTP 服务器端口
    51. senderEmail: '' # 发送者邮箱
    52. senderIdentity: '' # 发送者身份
    53. smtp: # SMTP
    54. user: '' # SMTP 用户名
    55. password: '' # SMTP 密码

    环境变量列表如下。

    环境变量 yaml变量路径 描述 默认 可能值
    CRAWLAB_API_ADDRESS api.path 前端API地址 http://localhost:8000 任意
    CRAWLAB_MONGO_HOST mongo.host MongoDB Host地址 localhost 任意
    CRAWLAB_MONGO_PORT mongo.port MongoDB端口号 27017 任意
    CRAWLAB_MONGO_DB mongo.db MongoDB数据库名 crawlab_test 任意
    CRAWLAB_MONGO_USERNAME mongo.username MongoDB用户名 任意
    CRAWLAB_MONGO_PASSWORD mongo.password MongoDB密码 任意
    CRAWLAB_MONGO_AUTHSOURCE mongo.authSource MongoDB AuthSource 任意
    CRAWLAB_REDIS_ADDRESS redis.address Redis地址 localhost 任意
    CRAWLAB_REDIS_PASSWORD redis.password Redis密码 任意
    CRAWLAB_REDIS_DATABASE redis.database Redis db 1 数值
    CRAWLAB_REDIS_PORT redis.port Redis 端口 数值
    CRAWLAB_LOG_LEVEL log.level 日志级别 info debug, info, warn, error
    CRAWLAB_LOG_PATH log.path 任务日志所在目录 /var/logs/crawlab 任意
    CRAWLAB_LOG_ISDELETEPERIODICALLY log.isDeletePeriodically 是否定期删除日志 Y Y, N
    CRAWLAB_LOG_DELETEFREQUENCY log.deleteFrequency 定期删除日志频率 @hourly 任意
    CRAWLAB_SERVER_HOST server.host 服务器绑定IP 0.0.0.0 任意
    CRAWLAB_SERVER_PORT server.port 服务器绑定端口 8000 任意
    CRAWLAB_SERVER_MASTER server.master 该节点是否为主节点 N Y, N
    CRAWLAB_SERVER_SECRET server.secret 服务器密钥 crawlab 任意
    CRAWLAB_SERVER_REGISTER_TYPE server.register.type 节点注册类别 mac mac, ip, hostname
    CRAWLAB_SERVER_REGISTER_IP server.register.ip 节点注册IP 任意
    CRAWLAB_SPIDER_PATH spider.path 爬虫所在目录 /app/spiders 任意
    CRAWLAB_TASK_WORKERS task.workers 任务并行执行个数 4 任意数字
    CRAWLAB_RPC_WORKERS rpc.workers RPC 协程个数 16 任意数字
    CRAWLAB_OTHER_TMPPATH other.tmppath 临时文件目录 /tmp 任意
    CRAWLAB_VERSION version 版本号 对应版本号 任意
    CRAWLAB_SETTING_ALLOWREGISTER setting.allowRegister 是否允许注册 N Y, N
    CRAWLAB_SETTING_ENABLETUTORIAL setting.enableTutorial 是否启用教程 N Y, N
    CRAWLAB_SETTING_RUNONMASTER setting.runOnMaster 是否在主节点运行任务 Y Y, N
    CRAWLAB_SETTING_DEMOSPIDERS setting.demoSpiders 是否使用Demo爬虫 N Y, N
    CRAWLAB_SETTING_CHECKSCRAPY setting.checkScrapy 是否自动检查为Scrapy Y Y, N
    CRAWLAB_NOTIFICATION_MAIL_SERVER notification.mail.server SMPT 服务器地址 任意
    CRAWLAB_NOTIFICATION_MAIL_PORT notification.mail.port SMPT 服务器端口 任意
    CRAWLAB_NOTIFICATION_MAIL_SENDEREMAIL notification.mail.senderEmail 发送者邮箱 任意
    CRAWLAB_NOTIFICATION_MAIL_SENDEREIDENTITY notification.mail.senderIdentity 发送者身份 任意
    CRAWLAB_NOTIFICATION_MAIL_SMTP_USER notification.mail.smtp SMTP 用户名 任意
    CRAWLAB_NOTIFICATION_MAIL_SMTP_PASSWORD notification.mail.password SMTP 密码 任意
    CRAWLAB_SERVER_LANG_NODE server.lang.node 预安装 Node.js 语言环境 Y, N
    CRAWLAB_SERVER_LANG_JAVA server.lang.java 预安装 Java 语言环境 Y, N
    CRAWLAB_SERVER_LANG_DOTNET server.lang.dotnet 预安装 .Net Core 语言环境 Y, N
    CRAWLAB_SERVER_LANG_PHP server.lang.php 预安装 PHP 语言环境 Y, N