{"id":13626841,"url":"https://github.com/huoyijie/GoChat","last_synced_at":"2025-04-16T19:30:49.999Z","repository":{"id":64943432,"uuid":"578406130","full_name":"huoyijie/GoChat","owner":"huoyijie","description":"a chat program with golang and protobuf","archived":false,"fork":false,"pushed_at":"2023-02-13T05:14:36.000Z","size":478,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-11T05:58:53.031Z","etag":null,"topics":["bubbletea","chat","golang","protobuf","sqlite","tcp","tutorials"],"latest_commit_sha":null,"homepage":"https://huoyijie.cn/article/63abece07abe11edabe8959dec69346b/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/huoyijie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-12-15T01:20:26.000Z","updated_at":"2023-03-04T06:30:55.000Z","dependencies_parsed_at":"2023-02-14T16:45:59.809Z","dependency_job_id":null,"html_url":"https://github.com/huoyijie/GoChat","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huoyijie%2FGoChat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huoyijie%2FGoChat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huoyijie%2FGoChat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huoyijie%2FGoChat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/huoyijie","download_url":"https://codeload.github.com/huoyijie/GoChat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249268547,"owners_count":21240940,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bubbletea","chat","golang","protobuf","sqlite","tcp","tutorials"],"created_at":"2024-08-01T22:00:23.055Z","updated_at":"2025-04-16T19:30:49.712Z","avatar_url":"https://github.com/huoyijie.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# GoChat\n\n## v0.3 Release\n\n* ui\n* ...\n\n### Run\n\n* server\n\n![gochat-server](docs/images/gochat-server.gif)\n\n* client (huoyijie)\n\n![gochat-huoyijie](docs/images/gochat-huoyijie.gif)\n\n* client (jack)\n\n![gochat-jack](docs/images/gochat-jack.gif)\n\n### Features\n\n![gochat-features-uml](docs/images/gochat-features-uml.svg)\n\n### Diagrams\n\n* lib\n\n![gochat-lib-uml](docs/images/gochat-lib-uml.svg)\n\n* server\n\n![gochat-server-uml](docs/images/gochat-server-uml.svg)\n\n* client\n\n![gochat-client-uml](docs/images/gochat-client-uml.svg)\n\n* sequence\n\n![gochat-sequence-uml](docs/images/gochat-sequence-uml.svg)\n\n## Docker\n\n```bash\n# work dir\ncd server\n\n# build executable\ngo build -o target/gochat-server\n\n# build docker image\ndocker build -t huoyijie/gochat-server:latest .\n\n# run docker c\ndocker run -it -v \"$(pwd)\"/target:/root/.gochat huoyijie/gochat-server:latest\n\n# open container's shell\ndocker exec -it af2e58909af8 /bin/bash\n```\n\n# Kubeadm\n\n* 安装 containerd/runc/cni-plugins\n\n```bash\n# The containerd.io package contains runc too, but does not contain CNI plugins.\nsudo apt install -y containerd.io\n\n# 安装 CNI plugins，从 https://github.com/containernetworking/plugins/releases 下载\nsudo mkdir -p /opt/cni/bin\nsudo tar Cxzvf /opt/cni/bin  cni-plugins-linux-amd64-v1.2.0.tgz\n\n# 编辑 /etc/containerd/config.toml，取消禁止 cri 集成插件，并配置 systemd cgroup 驱动\n\n#version = 2\n#[plugins.\"io.containerd.grpc.v1.cri\".containerd.runtimes.runc.options]\n#  SystemdCgroup = true\nsudo systemctl restart containerd\n```\n\n* 安装 kubeadm/kubelet/kubectl\n\n[参考这里](https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/install-kubeadm/)\n\n切换软件源到国内镜像\n\n* 初始化集群\n\n```bash\nsudo crictl --runtime-endpoint unix:///var/run/containerd/containerd.sock pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6\n\nsudo ctr -n k8s.io image tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6 registry.k8s.io/pause:3.6\n\nsudo kubeadm init  --v=6  --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' --ignore-preflight-errors=all --pod-network-cidr=10.244.0.0/16\n```\n\nYour Kubernetes control-plane has initialized successfully!\n\nTo start using your cluster, you need to run the following as a regular user:\n\n  mkdir -p $HOME/.kube\n  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config\n  sudo chown $(id -u):$(id -g) $HOME/.kube/config\n\nAlternatively, if you are the root user, you can run:\n\n  export KUBECONFIG=/etc/kubernetes/admin.conf\n\nYou should now deploy a pod network to the cluster.\nRun \"kubectl apply -f [podnetwork].yaml\" with one of the options listed at:\n  https://kubernetes.io/docs/concepts/cluster-administration/addons/\n\nThen you can join any number of worker nodes by running the following on each as root:\n\nkubeadm join 172.21.0.16:6443 --token fnegf9.vg14engc3y0llf6g \\\n\t--discovery-token-ca-cert-hash sha256:30bcb402141023db100ce6a07eb59df6563ffc342568169cfb6c46511cac11cc\n\n* 安装 Pod 网络插件\n\n```bash\nkubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml\nsudo systemctl restart kubelet containerd\n```\n\n## v0.4 todo\n\n* tls\n* emoji\n* send file\n* group chat","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuoyijie%2FGoChat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhuoyijie%2FGoChat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuoyijie%2FGoChat/lists"}