{"id":20743578,"url":"https://github.com/s-owl/skhufeeds","last_synced_at":"2026-05-06T19:36:14.458Z","repository":{"id":91366576,"uuid":"103540992","full_name":"s-owl/skhufeeds","owner":"s-owl","description":"카카오톡 플러스친구 자동응답 API 를 이용한 교내 소식 전달 시스템","archived":false,"fork":false,"pushed_at":"2017-10-28T05:28:01.000Z","size":436,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-18T02:25:36.734Z","etag":null,"topics":["mysql","project","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/s-owl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-14T14:15:32.000Z","updated_at":"2018-11-22T11:19:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"5303ce17-1aef-4f55-a3c4-ada461040660","html_url":"https://github.com/s-owl/skhufeeds","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-owl%2Fskhufeeds","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-owl%2Fskhufeeds/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-owl%2Fskhufeeds/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-owl%2Fskhufeeds/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/s-owl","download_url":"https://codeload.github.com/s-owl/skhufeeds/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243035854,"owners_count":20225608,"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":["mysql","project","python"],"created_at":"2024-11-17T07:12:06.234Z","updated_at":"2026-05-06T19:36:09.433Z","avatar_url":"https://github.com/s-owl.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SKHUFEEDS\n\n카카오톡 플러스친구 자동응답API 를 이용한 교내 소식 전달 시스템.\n\n## 의존성\n\n- Python 3.*\n- MySQL\n- RabbitMQ\n\n- Python 모듈\n - Django \u003e= 1.11.3\n - python-jose \u003e= 1.4.0\n - mysqlclient \u003e= 1.3.12\n - celery \u003e= 4.1.0\n - beautifulsoup4 \u003e= 4.6.0\n - pyshorteners \u003e= 0.6.1\n - gunicorn \u003e= 19.7.1\n - pyexcel-xls \u003e= 0.5.0\n\n## 플러스친구 계정 설정\n\n- 카카오톡 플러스친구 관리자 페이지(https://center-pf.kakao.com/login) 에서 로그인 합니다.\n- SKHUFEEDS 서버와 연결할 플러스친구 계정을 선택하거나, 새로 생성합니다.\n- 좌측 매뉴에서, 스마트채팅을 선택하고. 이후 API형의 편집 버튼을 누릅니다.\n- 서버 배포 작업을 먼저 합니다.\n- 앱 이름, 앱 URL(서버에 배포되어 실행중인 앱이 가지는 URL), 설명 등을 입력합니다.\n- API 테스트 버튼을 눌러 작동 여부를 확인합니다.\n- API 형 저장하기를 눌러 설정을 저장합니다.\n- 스마트채팅 선택 화면에서, API 형 편집 버튼 옆의 시작하기 버튼을 눌러 활성화 합니다.\n\n## 서버 배포 작업\n\n- MySQL Shell 에 `root` 로 접속하여, 데이터베이스를 새로 생성합니다.\n\n```\n CREATE USER username@localhost IDENTIFIED BY 'password';\n CREATE DATABASE skhufeedsdb CHARACTER SET UTF8;\n GRANT ALL PRIVILEGES ON skhufeeds.* TO username@localhost;\n FLUSH PRIVILEGES;\n exit\n```\n\n명령행 셸 세션에서 아래와 같이 실행에 필요한 환경 변수를 설정합니다.\n\n```\nexport SECRET_KEY = \"(DJANGO SECRET_KEY : 암호화 등에 사용되는 키 입니다. 임의로 생성된 50자 문자열을 넣습니다.)\"\nexport RABBITMQ_URL = \"RabbitMQ 서버 주소입니다. (예시 : amqp://localhost)\"\nexport GOO_GL_ALI_KEY = \"Google URL 단축 서비스 API 키\"\nexport DEBUG = \"디버깅 모드 사용 여부 (True / False)\"\nexport DB_USER = 데이터베이스_사용자_이름\nexport DB_PASSWORD = 데이터베이스_사용자_암호\nexport DB_NAME = 데이터베이스_이름\nexport DB_HOST = 데이터베이스_주소(예시:localhost)\nexport DB_PORT = 데이터베이스_포트\nexport APP_HOST = \"서버를 작동하는 머신이 할당받은 도메인 네임.\"\nexport BASEURL = \"서버 주소(https://example.com)\"\n```\n\n다음을 실행하여 서버의 메인 프로세스를 시작합니다.\n\n```\nbash start_main.sh\n```\n\n다른 명령핼 셸 세션을 열고, 조금 전과 같은 임시로 쓸 환경 변수 설정 후, 다음을 실행하여 Worker 프로세스를 시작합니다.\n```\nbash start_worker.sh\n```\n\n## Docker 를 이용하여 배포\n\n- Docker 를 먼저 설치하세요. (https://docs.docker.com/engine/installation/)\n- 배포에 사용할 것들을 Docker Image 로 빌드합니다.\n - Docker Registry 에 업로드 할 예정인 경우, 해당 Registry 의 도메인을 이미지 이름에 포함해야 합니다.\n - 예 : registry.gitlab.com 의 example 계정의 hello 에 업로드 할 경우. -\u003e registry.gitlab.com/example/hello\n - caddy 이미지는 빌드하기 앞서 `Caddyfile` 을 환경에 맞도록 수정해야 합니다.\n\n```\ncd caddy\nsudo docker build -t example.com/example/caddy:latest . # 이름을 caddy 로, 태그를 latest 로 하여 빌드\ncd ../skhufeeds\nsudo docker build -t example.com/example/skhufeeds:latest . # 이름을 skhufeeds 로, 태그를 latest 로 하여 빌드\n```\n\n- 필요에 따라 Registry 에 빌드 완료한 Docker Image 를 업로드 합니다.\n - 경우에 따라 Registry 에 먼저 로그인 해야 할 수도 있습니다.\n```\nsudo docker login example.com # 도메인이 example.com 인 Docker Registry 에 로그인\nsudo docker push example.com/example/caddy:latest\nsudo docker push example.com/example/skhufeeds:latest\n```\n\n- 서버에서 Registry 에 로그인 합니다.\n```\nsudo docker login example.com # 도메인이 example.com 인 Docker Registry 에 로그인\n```\n\n- Swarm 모드를 켭니다.\n```\nsudo docker swarm init\n```\n\n- 배포 설정 파일을 `deploy/deploy.yml` 을 참조하여 작성합니다. 작성한 파일을 `*.yml` 확장자로 저장합니다.\n- Docker Stack 으로 배포합니다. 추후 새 이미지 적용이 필요한 경우, 동일 명령어를 다시 한번 실행합니다.\n```\nsudo docker stack deploy --with-registry-auth -c deploy.yml skhufeeds-network\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs-owl%2Fskhufeeds","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fs-owl%2Fskhufeeds","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs-owl%2Fskhufeeds/lists"}