员工入职平台ChiefOnboarding

在这里插入图片描述

什么是 ChiefOnboarding ?

ChiefOnboarding 是一个免费开源的员工入职平台。您可以通过 Slack 或门户网站让新员工入职。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 chiefonboarding ,选择第一个 chiefonboarding/chiefonboarding,版本选择 latest

本文写作时, latest 版本对应为 v2.0.59

采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'services:db:image: postgres:15container_name: chiefonboarding-dbrestart: alwaysvolumes:- ./data:/var/lib/postgresql/data/environment:- POSTGRES_DB=chiefonboarding- POSTGRES_USER=postgres- POSTGRES_PASSWORD=postgresweb:image: chiefonboarding/chiefonboarding:latestcontainer_name: chiefonboarding-webrestart: alwaysports:- 8203:8000environment:#- DEBUG=True- HTTP_INSECURE=True- SECRET_KEY=somethingsupersecret- BASE_URL=http://192.168.0.197:8203- DATABASE_URL=postgres://postgres:postgres@db:5432/chiefonboarding- ALLOWED_HOSTS=192.168.0.197depends_on:- db
  • postgres 的环境变量
可变
POSTGRES_DB数据库库名
POSTGRES_USER数据库用户
POSTGRES_PASSWORD数据库用户对应的密码
  • chiefonboarding 的环境变量
可变
HTTP_INSECURE采用 http 协议
SECRET_KEY密钥
BASE_URL应用的地址
DATABASE_URL数据库地址
ALLOWED_HOSTS信任的主机

其中 192.168.0.197 为老苏群晖主机的 IP

更多环境变量设置,请参考官方文档:https://docs.chiefonboarding.com/deployment/docker.html#deploy-with-docker

然后执行下面的命令

# 新建文件夹 chiefonboarding 和 子目录
mkdir -p /volume1/docker/chiefonboarding/data# 进入 chiefonboarding 目录
cd /volume1/docker/chiefonboarding# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8203 就能看到设置界面

因为没有中文,所以只能用默认的 English

设置完成后需要登录

主界面

汉化

官方目前不支持中文,老苏是基于日文的 django.po ,通过 AI 翻译的,录入则是在 Poedit 中逐行进行的

最后还用 kimi 做了校对,但即便这样,翻译也不是很准确,毕竟是脱离了语境的直译

  • poPortable Object(可移植对象)的缩写,存放待翻译的字符串信息,可直接用文本编辑器打开编辑,不过老苏建议还是用 Poedit 比较方便;
  • moMachine Object的缩写,二进制文件,程序运行时从mo 文件查找字符串的翻译,Poedit 在保存时,会自动生成;

这两个文件老苏放了 https://github.com/wbsu2003/synology/tree/main/ChiefOnboarding

因为语言包都很久没更新了

所以还是有未汉化的地方

安装方法有两种,你可以根据需要自行选择

  • 方法一、下载到本地后再拷入容器

下载后放入 /chiefonboarding 目录

然后在 SSH 客户端的命令执行下面的命令

# 进入 chiefonboarding 目录
cd /volume1/docker/chiefonboarding# 拷贝文件到容器中
docker cp django.po chiefonboarding-web:/app/locale/jp/LC_MESSAGES/django.po
docker cp django.mo chiefonboarding-web:/app/locale/jp/LC_MESSAGES/django.mo
  • 方法二、在容器内下载

如果不愿意下载,也可以在容器中直接下载

# 进入容器
docker exec -it chiefonboarding-web /bin/bash# 进入日语目录
cd /app/locale/jp/LC_MESSAGES/# 下载 po 文件
curl -O https://raw.githubusercontent.com/wbsu2003/synology/main/ChiefOnboarding/django.po# 下载 mo 文件
curl -O https://raw.githubusercontent.com/wbsu2003/synology/main/ChiefOnboarding/django.mo

回到软件中,进入 Settings --> Personal --> Language,选择 Japanese

Update 之后,界面就是中文了

接下来研究使用方法就没那么大的压力了

参考文档

chiefonboarding/ChiefOnboarding: Free and open-source employee onboarding platform. Onboard new hires through Slack or the web portal.
地址:https://github.com/chiefonboarding/ChiefOnboarding

ChiefOnboarding – Employee onboarding done right.
地址:https://chiefonboarding.com/

What’s ChiefOnboarding?
地址:https://docs.chiefonboarding.com/

chiefonboarding/chiefonboarding - Docker Image | Docker Hub
地址:https://hub.docker.com/r/chiefonboarding/chiefonboarding

wordpress - 翻译po文件并转换成mo文件的三种办法 - tlanyan - SegmentFault 思否
地址:https://segmentfault.com/a/1190000022275589

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/28740.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言dplyr统计指定列里面种类个数和比例

输入数据框&#xff1a;dfuorf&#xff0c;Type列有uORF和overlpaORF两种类型 dfuorf1 <- dfuorf %>%group_by(Type) %>% summarise(Countn()) %>% mutate(percentCount/sum(Count)) %>% mutate(percent1 (paste0(round((Count/sum(Count)), 2)*100,"%&…

示例:WPF中使用DecodePixelHeight和DecodePixelWidth优化Image性能

一、目的&#xff1a;在使用Image控件时&#xff0c;如果图片太大或者图片数量过多时加载出来的程序内存会非常的大&#xff0c;但一般图片多时我们只要预览缩略图就可以&#xff0c;查看时再显示原图&#xff0c;这个时候需要通过通过设置BitmapImage的DecodePixelHeight和Dec…

linux下写shell脚本时-gt或-lt是什么意思?

Linux下有一些判断比较的逻辑&#xff0c;下面解释一下相关关键字的意思&#xff1a; -gt是大于的意思。 -eq是等于的意思。 -ne是不等于的意思。 -ge是大于等于的意思。 -lt是小于的意思。 -le是小于等于的意思。 下面一段代码&#xff1a; hourdate %Hecho $hourif [ …

YOLOv5目标检测——基于YOLOv5的吊车安全监测

移动式起重机是建筑施工中使用的重要设备。 遵守正确的操作程序对于防止事故很重要。 然而&#xff0c;其中存在人为错误的因素。 这里我将举一个例子来说明计算机视觉&#xff08;CV&#xff09;如何帮助解决这个问题。 1、移动式起重机操作的安全问题 为简单起见&#xff0…

MySQL 离线安装客户端

1. 官方网址下载对应架构的安装包。 比如我的是centOs 7 x64。则需下载如图所示的安装包。 2. 安装 使用如下命令依次安装 devel , client-plugins, client. rpm -ivh mysql-community-*.x86_64.rpm --nodeps --force 在Linux系统中&#xff0c;rpm是一个强大的包管理工具&…

Python基础教程(二十四):日期和时间

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

系统架构设计师【论文-2017年 试题2】: 论软件架构风格(包括写作要点和经典范文)

题目&#xff1a;论软件架构风格 &#xff08;2017年 试题2&#xff09; 软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格 定义一个系统家族&#xff0c;即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和 连接件类型&#xff…

解决Flutter应用程序的兼容性问题

哈喽呀&#xff0c;大家好呀&#xff0c;淼淼又来和大家见面啦&#xff0c;Flutter作为一个跨平台的移动应用开发框架&#xff0c;极大地简化了开发者同时在Android和iOS平台上构建应用的难度。然而&#xff0c;由于不同设备、操作系统版本以及Flutter框架本身的变化&#xff0…

关于valueOf和parseInt的记忆

记住 valueOf 和 parseInt 这些方法所属的类和它们的用法确实可能有些混乱。以下是一些策略和记忆技巧&#xff0c;帮助你更好地记住这些方法&#xff1a; 1. 理解常见的类和方法 了解一些常见的类及其方法所属的类别和用途。 String类: String.valueOf 方法将不同类型的值转…

[C语言]条件编译

C语言条件编译用途&#xff1a; 1.判断宏是否被定义&#xff1b; 2.判断宏是否未被定义&#xff1b; 3.选择性执行 #include <stdio.h>#define DEBUG 10 #define HIGH 2int main() {int value 10;//1.用于判断宏是否被定义 #ifdef DEBUGprintf("1.DEBUG define…

springboot弘德图书馆座位预约管理系统-计算机毕业设计源码07028

摘 要 在面对当今培育人才计划的压力&#xff0c;人们需要汲取更多的不同领域的知识来不断扩充自己的知识层面&#xff0c;因此他们对学习的欲望不断扩大&#xff0c;图书馆作为我们的学习宝地&#xff0c;有着不可替代的地位。但是在信息化时代&#xff0c;传统模式下的图书馆…

nginx入门与实践

当谈到NGINX的入门与实践时&#xff0c;理解基本概念并能够应用实际场景非常重要。NGINX是一个高性能的HTTP和反向代理服务器&#xff0c;也可用作负载均衡器和HTTP缓存。以下是一些入门级别的NGINX实践和代码示例&#xff0c;帮助你开始学习和使用它。 1. 安装和基本配置 安…

栅格数据实现最优参数地理探测器(OPGD)详细教程!(上)

数据准备 要探寻一堆因素对因变量的影响,首先你要确定要用哪些自变量来影响哪个因变量 想好了之后 你需要到相应的网站去下载你的研究区的自变量和因变量数据的栅格数据(可以是离散的,也可以是连续的) 后续操作是到Arcgis里对你的数据处理一下 由于不是教程的重点,这里就…

uniApp @input事件更改输入框值,值改变了但是页面没更新新的值

<uni-easyinputtype"text"trim"all":inputBorder"false"v-model"customFormData.completePercent"input"(val) > completeOnInput(val)"placeholder"请输入" /> function completeOnInput(val) {let num…

less-loader的less转成CSS的底层原理

在现代Web开发中&#xff0c;CSS预处理器如LESS极大地提高了编写样式的效率和灵活性。而less-loader作为webpack的一个加载器&#xff0c;用于将LESS文件转换为CSS文件。本文将深入探讨less-loader如何工作&#xff0c;从解析LESS文件到生成最终的CSS文件的底层原理。 工作流程…

Go 基础丨切片 slice

1. 底层 runtime/slice.go type slice struct {array unsafe.Pointer // 指向底层数组len int // 切片元素数量cap int // 底层数组容量 }reflect/value.go type SliceHeader struct {Data uintptrLen intCap int }2. 创建 根据数组创建 s : arr[0:3]字面…

低功耗蓝牙ble开发(三)——基于bluez5接口的ble应用示例

5、应用实例 一般 BLE&#xff08;低功耗蓝牙&#xff09;设备的连接流程可以分为以下几个步骤&#xff1a; 启动设备发现&#xff1a;通过 StartDiscovery 方法开始扫描周围的 BLE 设备。监听设备发现信号&#xff1a;监听 InterfacesAdded 信号&#xff0c;以获取发现的设备…

【Linux】进程_7

文章目录 五、进程8. 进程地址空间9. 进程终止10. 进程等待 未完待续 五、进程 8. 进程地址空间 我们上节知道了进程地址空间是根据页表来使虚拟地址转换成内存中的物理地址&#xff0c;那这种 地址空间 页表 的机制有什么好处呢&#xff1f;①这种机制可以将物理内存从无序…

Elixir学习笔记——Erlang 库

Elixir 提供了与 Erlang 库的出色互操作性。事实上&#xff0c;Elixir 不鼓励简单地包装 Erlang 库&#xff0c;而是直接与 Erlang 代码交互。在本节中&#xff0c;我们将介绍一些 Elixir 中没有的最常见和最有用的 Erlang 功能。 Erlang 模块的命名约定与 Elixir 不同&#x…

Springboot整合阿里云ONS RocketMq(4.0 http)

1. 引入依赖 <!--阿里云ons&#xff0c;方便的接入到云服务--> <dependency><groupId>com.aliyun.openservices</groupId><artifactId>ons-client</artifactId><version>1.8.4.Final</version> </dependency>2. 配置 配…