Giter Site home page Giter Site logo

82flex / dcrm Goto Github PK

View Code? Open in Web Editor NEW
247.0 17.0 100.0 9.42 MB

Darwin Cydia Repo Manager - v4 redesigned in Django.

Home Page: https://apt.82flex.com/

License: GNU Affero General Public License v3.0

Python 43.86% CSS 13.57% HTML 10.97% JavaScript 31.17% CoffeeScript 0.28% Dockerfile 0.01% Shell 0.14%
cydia-repo cydiarepo cydia-tweak cydia apt-repository apt-packages apt-get repository-management repository dpkg-deb

dcrm's Introduction

DCRM Logo

DCRM - Darwin Cydia Repository Manager (Version 4)

DO NOT USE DCRM FOR DISTRIBUTING PIRATED PACKAGES. 请勿使用 DCRM 分发盗版软件包.


1. SUMMARY

DCRM means Darwin Cydia Repo (APT) Manager, which is designed for Jay Freeman's Cydia. Cydia is an universal package manager for jailbroken devices.

1.1. Features

  • full featured dashboard powered by Django and Django Suit
  • restful APIs with full documentation powered by Django REST framework
  • import Debian package (.deb) via http or ftp upload
  • manage packages, versions, sections and icons
  • sync control fields between db and the control file inside package automatically
  • auto generated depiction pages, mobile optimized
  • threaded comments & screenshots gallery
  • iOS version / product type compatibility check
  • version history & downgrade support
  • download count & statistics
  • scheduled tasks
  • multiple users / groups
  • CDN/OSS friendly
  • GPG signature
  • supports Docker

1.2. TODOs

  • apt pdiff feature
  • support for commercial packages
  • more themes

2. DEMO

This demo is deployed using Container Optimized OS on Google Cloud.

https://apt.82flex.com/

  • Username: root
  • Password: dcrmpass

Watch the guide video: https://youtu.be/dvNCRckm2Cc

3. DOCKER DEPLOY 自动部署

以下步骤能完整部署 DCRM 最新副本, 启用了任务队列及页面缓存支持, 你可以根据需要调整自己的配置.

  1. 如果你还没有下载此项目, 建议使用 git 克隆该仓库:
# download this project or clone this git repo:
git clone --depth 1 https://github.com/82Flex/DCRM.git && cd DCRM
  1. 构建并启动 DCRM 容器:
# build and launch DCRM via `docker-compose`
docker-compose up --build --detach
  1. 先附加到容器中:
# attach to `dcrm_app` container
docker exec -i -t dcrm_app /bin/bash
  1. execute in container: 在容器中执行命令:
# collect static files
python manage.py collectstatic --no-input

# create required database structures
python manage.py migrate

# create super user in database
python manage.py createsuperuser
  1. access admin panel via http://127.0.0.1/admin/, you can upload packages via HTTP or FTP: 现在可以尝试访问 DCRM 后台了, 你可以通过 HTTP 或 FTP 方式上传软件包:
  • Default FTP username: dcrm
  • Default FTP password: dcrm_ftp_password

3.1. Docker Commands 常用命令

  1. 重新构建并在后台启动 DCRM (仅当代码发生变动, 不会影响数据)
# build and launch DCRM in background (when source code changed)
docker-compose up --build --detach
  1. 仅在后台启动 DCRM
# launch DCRM in background
docker-compose up --detach
  1. 在前台启动 DCRM
# launch DCRM in foreground to see what happens
docker-compose up
  1. 停止 DCRM
# shutdown DCRM
docker-compose down

3.2. Basic Configuration

here are a few steps you need to follow:

edit docker/nginx/conf.d/default.conf:

  1. set server_name to your domain
  2. configure your https server

edit DCRM/.env:

  1. DCRM_HOST
  2. DCRM_DEBUG: set it to 0 if you're providing subscription to others
  3. DCRM_SECURE_SSL: set it to 1 if you have https certs and properly configured
  4. DCRM_SECRET_KEY: set it to a random, unique string
  5. DCRM_TIME_ZONE

edit docker-compose.yml:

  1. change default FTP username and password in services:pure-ftpd:environment, FTP_USER_NAME and FTP_USER_PASS, enable FTP over TLS if you want

3.3. Configure GnuPG

# 1. attach to `dcrm_app` container
docker exec -i -t dcrm_app /bin/bash

# 2. generate new GPG key
gpg --gen-key --homedir .gnupg
# or
# gpg --allow-secret-key-import --import private.key --homedir .gnupg

# 3. enable GPG feature and configure passphrase in `WEIPDCRM -> Settings -> Security`
# 4. create APT verification package in `WEIPDCRM -> Sections -> Action -> Generate icon package for selected sections`, which will install GPG public key to user's device

4. PUBLISH REPOSITORY 发布软件源

Before you publish your repository, there are a few steps you should follow: 部署完成后, 你还需要一些步骤来发布你的软件源:

  1. Sites

Set domains and site names. 在 Sites 中设置域名和站点名称

  1. WEIPDCRM -> Settings
  2. WEIPDCRM -> Releases

Add a new release and set it as an active release. 添加新的 Release 并将其设置为活跃状态

  1. WEIPDCRM -> Sections
  2. WEIPDCRM -> Upload -> New Package

Upload your debian package via HTTP or FTP. 上传你的 deb 包

  1. WEIPDCRM -> Versions

Enable package versions and assign them into sections. 记得启用你的 deb 包 (默认不启用), 并且将它们分配到源分类当中

  1. WEIPDCRM -> Builds

Build the repository to apply all the changes, thus you cannot add this repo in Cydia. 构建全源, 让所有更改生效 (第一次构建前, Cydia 中是无法添加该源的)

5. MANUALLY DEPLOY 手动部署

5.1. ENVIRONMENT 环境

  • gzip, bzip2, xz (xz-devel)
  • Python 3.7 (CentOS: if compiled from source, make sure package xz-devel is installed)
  • Django 1.11+
  • MySQL (or MariaDB)
  • Redis (optional)
  • memcached (optional)
  • uwsgi, Nginx (production only)
  • vsftpd (or pure-ftpd, optional)

5.2. EXAMPLE 示例

  1. install dependencies: 安装依赖:
apt-get update
apt-get upgrade
apt-get install git mysql-server libmysqlclient-dev python3-dev python3-pip libjpeg-dev tzdata
  1. configure mysql: 安装完成后, 登录到 mysql:
service mysql start
mysql_secure_installation
mysql -uroot -p
  1. create a database for this DCRM instance: 新建 DCRM 数据库:
CREATE DATABASE `DCRM` DEFAULT CHARSET UTF8;
  1. create mysql user dcrm and grant privileges: 新建 dcrm 用户并设置密码:
CREATE USER 'dcrm'@'localhost' IDENTIFIED BY 'thisisthepassword';
GRANT ALL PRIVILEGES ON `DCRM`.* TO 'dcrm'@'localhost';
FLUSH PRIVILEGES;
  1. clone this git repo: 在合适的位置克隆 DCRM:
mkdir -p /wwwdata
cd /wwwdata
git clone --depth 1 https://github.com/82Flex/DCRM.git
cd /wwwdata/DCRM
  1. install python modules, virtualenv is recommended if you want: 安装必要的 python 模块:
pip3 install -r requirements.txt
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -D mysql -u root -p
  1. enable redis support (task queue): 如果你还需要开启 Redis 支持 (用于任务队列):
apt-get install redis-server
service redis-server start
  1. enable memcached support (page caching): 如果你还需要开启页面缓存, 你可能还需要自行启动 memcached 服务:
apt-get install memcached
service memcached start
  1. modify DCRM/.env:
  • DCRM_DEBUG=1 for debugging, DCRM_DEBUG=0 for production
  • DCRM_HOST: add your domain
  • DCRM_SECRET_KEY: set it to a random, unique string
  • DCRM_MYSQL_*: your mysql configurations, you may use different 'DATABASE' across DCRM instances
  • DCRM_REDIS_*: your redis configurations, you may use different 'DB' numbers across DCRM instances
  • DCRM_MEMCACHED_*: your memcached configurations
  • DCRM_LANGUAGE_CODE and DCRM_TIME_ZONE
  • optional features: DCRM_ENABLE_REDIS, DCRM_ENABLE_CACHE, DCRM_ENABLE_API
  1. collect static files: 同步静态文件:
python3 manage.py collectstatic
  1. migrate database and create new super user: 同步数据库结构并创建超级用户:
python3 manage.py migrate
python3 manage.py createsuperuser
  1. run debug server: 启动测试服务器:
python3 manage.py runserver
  1. access admin panel via http://127.0.0.1:8000/admin/

5.3. IN PRODUCTION 生产环境示例

生产环境的配置需要有一定的服务器运维经验, 如果你在生产环境的配置过程中遇到困难, 我们提供付费的疑难解答.

We assumed that nginx uses www-data as its user and group. 假设 nginx 使用 www-data 用作其用户名和用户组名.

5.3.1. Configure UWSGI

here is an example of uwsgi.ini:

[uwsgi]

chdir = /home/DCRM
module = DCRM.wsgi

master = true
processes = 4
enable-threads = true
threads = 2
thunder-lock = true
socket = :8001
vaccum = true
uid = www-data
gid = www-data
safe-pidfile = /home/run/uwsgi-apt.pid
; daemonize = /dev/null

5.3.2. UWSGI Commands

# test
uwsgi --ini uwsgi.ini

# run
uwsgi --ini uwsgi.ini --daemonize=/dev/null

# kill
kill -INT `cat /home/run/uwsgi-apt.pid`

5.3.3. Configure Nginx/Apache

here is an example of nginx https site configuration file:

upstream django {
    server 127.0.0.1:8001;  # to match your uwsgi configuration
}
server {
    listen 80;
    server_name apt.82flex.com;  # your domain
    rewrite ^/(.*)$ https://apt.82flex.com/$1 permanent;  # redirect to https
}
server {
    listen 443 ssl;

    ssl_certificate /wwwdata/ssl/1_apt.82flex.com_bundle.crt;  # your ssl cert
    ssl_certificate_key /wwwdata/ssl/2_apt.82flex.com.key;  # your ssl key
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
    ssl_prefer_server_ciphers on;

    server_name apt.82flex.com;  # your domain
    root /wwwdata/wwwroot;  # specify a web root, not the DCRM directory
    error_page 497 https://$host$uri?$args;
    server_name_in_redirect off;
    index index.html;
    
    location = / {
        # only enable this section if you want to use DCRM as your home page
        rewrite ^ /index/ last;
    }
    
    location / {
        # only enable this section if you want to use DCRM as your default pages
        try_files $uri $uri/ @djangosite;
    }	
    
    location ~^/static/(.*)$ {
        # static files for DCRM, you can change its path in settings.py
        alias /wwwdata/DCRM/static/$1;  # make an alias for static files
    }

    location ~^/resources/(.*)$ {
        # resources for DCRM, including debian packages and icons, you can change it in WEIPDCRM > Settings in admin panel
        alias /wwwdata/DCRM/resources/$1;  # make an alias for resources
        
        # Aliyun CDN/OSS:
        # you can mount '/wwwdata/DCRM/resources' to oss file system
        # then rewrite this path to oss/cdn url for a better performance
    }
    
    location ~^/((CydiaIcon.png)|(Release(.gpg)?)|(Packages(.gz|.bz2)?))$ {
        # Cydia meta resources, including Release, Release.gpg, Packages and CydiaIcon
        
        # Note:
        # 'releases/(\d)+/$1' should contain `active_release.id`, which is set in Settings tab.
        alias /wwwdata/DCRM/resources/releases/1/$1;  # make an alias for Cydia meta resources
    }
    
    location @djangosite {
        uwsgi_pass django;
        include /etc/nginx/uwsgi_params;
    }
    
    location ~* .(ico|gif|bmp|jpg|jpeg|png|swf|js|css|mp3|m4a|m4v|mp4|ogg|aac)$ {
        expires 7d;
    }
    
    location ~* .(gz|bz2)$ {
        expires 12h;
    }
}

here is an example of apache virtual host configuration file:

Alias /static        /home/DCRM/static
Alias /resources     /home/DCRM/resources
Alias /CydiaIcon.png /home/DCRM/resources/releases/1/CydiaIcon.png
Alias /Release       /home/DCRM/resources/releases/1/Release
Alias /Release.gpg   /home/DCRM/resources/releases/1/Release.gpg
Alias /Packages      /home/DCRM/resources/releases/1/Packages
Alias /Packages.gz   /home/DCRM/resources/releases/1/Packages.gz
Alias /Packages.bz2  /home/DCRM/resources/releases/1/Packages.bz2

<IfModule mod_proxy_uwsgi.c>
  ProxyPreserveHost On
  ProxyPass /static !
  ProxyPass /resources !
  ProxyPass /CydiaIcon.png !
  ProxyPass /Release !
  ProxyPass /Release.gpg !
  ProxyPass /Packages !
  ProxyPass /Packages.gz !
  ProxyPass /Packages.bz2 !
  ProxyPass / uwsgi://127.0.0.1:8001/
</IfModule>

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/png "access 7 days"
  ExpiresByType image/gif "access 7 days"
  ExpiresByType image/jpeg "access 7 days"
  ExpiresByType text/javascript "access 2 weeks"
  ExpiresByType text/css "access 2 weeks"
  ExpiresByType text/html "modification 4 hours"
  ExpiresDefault "access 2 hours"
</IfModule>

5.3.4. NGINX Commands

# install Nginx
apt-get install nginx

# launch Nginx
service nginx start

# test Nginx configuration
nginx -t

# reload configuration
nginx -s reload

# launch nginx if it is down
sudo /etc/init.d/nginx start

5.3.5. Configure Workers

# launch task queue with the same nginx working user (www/www-data)
su www-data

# if you cannot switch to user `www-data`, remember to change its login prompt in `/etc/passwd`. launch some workers for DCRM background queue
nohup ./manage.py rqworker high > /dev/null &
nohup ./manage.py rqworker default > /dev/null &

# you need at least one worker for each queue

worker 的数量以你的具体需求为准, 但是各队列中至少要有一个活跃 worker, 否则队列中的任务将一直保持挂起.

5.3.6. Configure GnuPG

# 1. install `gnupg2`
apt-get install gnupg2

# 2. make sure to launch background queue with the same nginx working user (www/www-data)
su www-data

# 3. generate new GPG key
gpg --gen-key --homedir .gnupg
# or
# gpg --allow-secret-key-import --import private.key --homedir .gnupg

# 4. enable GPG feature and configure passphrase in `WEIPDCRM -> Settings -> Security`
# 5. create APT verification package in `WEIPDCRM -> Sections -> Action -> Generate icon package for selected sections`, which will install GPG public key to user's device

6. CONTRIBUTORS

7. LICENSE 版权声明

As long as you do not use the DCRM in a business or money-making venture, it is free for your own personal use. If you use DCRM in commercial projects (e.g. hosting commercial packages), please consider buy a commercial license.

PayPal receipt is valid proof of purchase of DCRM licence.

SINGLE: Use DCRM in one commercial project

paypal

UNLIMITED: Use DCRM in unlimited commercial projects

paypal


Copyright © 2013-2020 Lessica, Hintay, 0xJacky and all DCRM contributors

The program is distributed under the terms of the GNU Affero General Public License.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.

dcrm's People

Contributors

0xjacky avatar dependabot[bot] avatar hintay avatar lessica avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dcrm's Issues

Demo is Down

The demo is down, this means the admin panel cannot be viewed before going through the tedious process of setting this up, maybe some screenshots of the admin interface in the readme would be nice

Error Docker

`Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
dcrm_redis is up-to-date
dcrm_db is up-to-date
dcrm_memcached is up-to-date
WARNING: The "worker-high" service is using the custom container name "dcrm_worker-high". Docker requires each container to have a unique name. Remove the custom name to scale the service.
dcrm_scheduler is up-to-date
dcrm_app is up-to-date
dcrm_worker-default is up-to-date
dcrm_pure-ftpd is up-to-date
Creating dcrm_worker-high ... error

ERROR: for dcrm_worker-high Cannot create container for service worker-high: Conflict. The container name "/dcrm_worker-high" is already in use by container "1831bd5629c0aa27c73c2e7cf9b27f0ebd406c52cb04cb0db30cad37f8d5aa9b". You have to remove (or rename) that container to be able to reuse that name.

ERROR: for worker-high Cannot create container for service worker-high: Conflict. The container name "/dcrm_worker-high" is already in use by container "1831bd5629c0aa27c73c2e7cf9b27f0ebd406c52cb04cb0db30cad37f8d5aa9b". You have to remove (or rename) that container to be able to reuse that name.
ERROR: Encountered errors while bringing up the project.`

Screenshot update

How to update a version but keep the screenshots from the previous one ?

无法找到APT 软件源

按照步骤完成docker源搭建之后,能打开源网页,再添加的时候就显示 无法找到APT 软件源

Comment bug

Upon trying to comment (from cydia nothing happens) from web getting the following error attached screenshot
screenshot 2018-06-10 at 03 34 55

ERROR: Service 'scheduler' failed to build

ERROR: Service 'scheduler' failed to build: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused "rootfs_linux.go:58: mounting \"proc\" to rootfs \"/var/lib/docker/vfs/dir/e56ee33998f867cad60403fbd8e0b50d6d19302711e63adb82a7fd1071556fda\" at \"/proc\" caused \"permission denied\""": unknown
怎么办?

Notice bug

The notice section is bugged. When you enter a notice, if you save it and delete it (clear it) afterwards, the notice will be gone but the notice section will stay (empty). I checked the db and for some reason even if you empty the notice text view, the db saves an empty paragraph (<p></br></p>) which in turn makes the section show up even if it appears empty since the paragraph mentioned above doesn't actually have any text. A temporary solution and hacky work around is to manually delete the column entry for your site's preferences record from the db. If you do that and never touch the settings again it will work but if you try and change any other setting again, it will show up again

构建并启动 DCRM 容器 Step 4 ERROR

docker-compose up --build --detach
第4步时报错 请问什么原因
ERROR: Service 'scheduler' failed to build: oci runtime error: container_linux.go:235: starting container process caused "process_linux.go:258: applying cgroup configuration for process caused "Cannot set property TasksAccounting, or unknown property.""

安装“requirements”的时候提示The unauthenticated git protocol on port 9418 is no longer supported.

图片
这是问题的详细代码:
WARNING: Some services (worker-default, worker-high) use the 'deploy' key, which will be ignored. Compose does not support 'deploy' configuration - use docker stack deploy to deploy to a swarm.
Building scheduler
Step 1/6 : FROM python:3.7
---> 7c891de3e220
Step 2/6 : WORKDIR /usr/src/app
---> Using cache
---> 3fb08074fed9
Step 3/6 : COPY requirements.txt ./
---> Using cache
---> 3227e9743bf7
Step 4/6 : RUN pip install --no-cache-dir -r requirements.txt
---> Running in 2b3d413f8f8f
Collecting django-contrib-comments
Cloning git://github.com/django/django-contrib-comments.git (to revision f498cee0e04a4bcd4e061b25805c83ef08e9e536) to /tmp/pip-install-x_eut7vj/django-contrib-comments_24a32224f78c4c82b10d7e3da8a03d19
Running command git clone --filter=blob:none --quiet git://github.com/django/django-contrib-comments.git /tmp/pip-install-x_eut7vj/django-contrib-comments_24a32224f78c4c82b10d7e3da8a03d19
fatal: remote error:
The unauthenticated git protocol on port 9418 is no longer supported.
Please see https://github.blog/2021-09-01-improving-git-protocol-security-github/ for more information.
error: subprocess-exited-with-error

× git clone --filter=blob:none --quiet git://github.com/django/django-contrib-comments.git /tmp/pip-install-x_eut7vj/django-contrib-comments_24a32224f78c4c82b10d7e3da8a03d19 did not run successfully.
│ exit code: 128
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× git clone --filter=blob:none --quiet git://github.com/django/django-contrib-comments.git /tmp/pip-install-x_eut7vj/django-contrib-comments_24a32224f78c4c82b10d7e3da8a03d19 did not run successfully.
│ exit code: 128
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

麻烦您看下,谢谢!

project

I need you on a project and I will pay you how to contact you?

考虑出个docker版吗?

看到issue很多问题都是安装配置的问题,可以考虑用docker,暴露出端口和配置文件就可以了

目前bug还是比较多的,希望能够不断的完善

废了一番周折centos7而且不熟悉Python环境,搭建起来了,看了下bug太多了,选项各方面还是比较少。
对我而言我更喜欢php版(### 毕竟是世界上最好的语言)哈哈哈,希望早日出正式版

ERROR: for dcrm_worker-high Cannot create container for service worker-high: Conflict. The container name "/dcrm_worker-

Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
Creating dcrm_memcached ... done
Creating dcrm_db ... done
Creating dcrm_redis ... done
WARNING: The "worker-high" service is using the custom container name "dcrm_worker-high". Docker requires each container to have a unique name. Remove the custom name to scale the service.
Creating dcrm_scheduler ... done
Creating dcrm_worker-default ...
Creating dcrm_app ... done
Creating dcrm_worker-high ... error
Creating dcrm_worker-high ...
Creating dcrm_worker-default ... done

ERROR: for dcrm_worker-high Cannot create container for service worker-high: Conflict. The container name "/dcrm_worker-high" is already in use by container "1891f8eed617976cbe6e37e2ef3b7f41c6cf3564b755e5089f9fc1f9f4d2804d". You have to reCreating dcrm_pure-ftpd ... done

ERROR: for worker-high Cannot create container for service worker-high: Conflict. The container name "/dcrm_worker-high" is already in use by container "1891f8eed617976cbe6e37e2ef3b7f41c6cf3564b755e5089f9fc1f9f4d2804d". You have to remove (or rename) that container to be able to reuse that name.
ERROR: Encountered errors while bringing up the project.

构建报错

ERROR: Exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/response.py", line 437, in _error_catcher
yield
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/response.py", line 519, in read
data = self._fp.read(amt) if not fp_closed else b""
File "/usr/local/lib/python3.7/http/client.py", line 461, in read
n = self.readinto(b)
File "/usr/local/lib/python3.7/http/client.py", line 505, in readinto
n = self.fp.readinto(b)
File "/usr/local/lib/python3.7/socket.py", line 589, in readinto
return self._sock.recv_into(b)
File "/usr/local/lib/python3.7/ssl.py", line 1071, in recv_into
return self.read(nbytes, buffer)
File "/usr/local/lib/python3.7/ssl.py", line 929, in read
return self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 216, in _main
status = self.run(options, args)
File "/usr/local/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", line 182, in wrapper
return func(self, options, args)
File "/usr/local/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 325, in run
reqs, check_supported_wheels=not options.target_dir
File "/usr/local/lib/python3.7/site-packages/pip/_internal/resolution/legacy/resolver.py", line 183, in resolve
discovered_reqs.extend(self._resolve_one(requirement_set, req))
File "/usr/local/lib/python3.7/site-packages/pip/_internal/resolution/legacy/resolver.py", line 388, in _resolve_one
abstract_dist = self._get_abstract_dist_for(req_to_install)
File "/usr/local/lib/python3.7/site-packages/pip/_internal/resolution/legacy/resolver.py", line 340, in _get_abstract_dist_for
abstract_dist = self.preparer.prepare_linked_requirement(req)
File "/usr/local/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 469, in prepare_linked_requirement
hashes=self._get_linked_req_hashes(req)
File "/usr/local/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 259, in unpack_url
hashes=hashes,
File "/usr/local/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 130, in get_http_url
link, downloader, temp_dir.path, hashes
File "/usr/local/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 282, in _download_http_url
for chunk in download.chunks:
File "/usr/local/lib/python3.7/site-packages/pip/_internal/cli/progress_bars.py", line 168, in iter
for x in it:
File "/usr/local/lib/python3.7/site-packages/pip/_internal/network/utils.py", line 88, in response_chunks
decode_content=False,
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/response.py", line 576, in stream
data = self.read(amt=amt, decode_content=decode_content)
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/response.py", line 541, in read
raise IncompleteRead(self._fp_bytes_read, self.length_remaining)
File "/usr/local/lib/python3.7/contextlib.py", line 130, in exit
self.gen.throw(type, value, traceback)
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/response.py", line 442, in _error_catcher
raise ReadTimeoutError(self._pool, None, "Read timed out.")
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
ERROR: Service 'scheduler' failed to build: The command '/bin/sh -c pip install --no-cache-dir -r requirements.txt' returned a non-zero code: 2
如上,已安装py2,py3两个版本

CalledProcessError 报了这个错请问怎么处理谢谢。

Request Method: POST
https://127.0.0.1/admin/WEIPDCRM/build/add/
1.10.5
CalledProcessError
Command '[u'gpg', u'-abs', u'--batch', u'--yes', u'-o', u'/wwwdata/DCRM/temp/92a17c5c-02bd-4364-859e-2974e7290f25/Release.gpg', u'/wwwdata/DCRM/temp/92a17c5c-02bd-4364-859e-2974e7290f25/Release']' returned non-zero exit status 2
/usr/lib/python2.7/subprocess.py in check_call, line 541
/usr/local/bin/uwsgi
2.7.12
['.', '', '/usr/local/lib/python2.7/dist-packages/cloud_init-0.7.6-py2.7.egg', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']

构建一直失败

数据源设置等都搞好之后,构建一直显示失败,不知道是什么原因,能回复下吗

请问下这个ERROR是什么造成的,mac电脑和服务器都这个错误

ERROR: Command errored out with exit status 1:
 command: /usr/local/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-t97hq5n_/python-akismet/setup.py'"'"'; __file__='"'"'/tmp/pip-install-t97hq5n_/python-akismet/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-8z2_x4_a
     cwd: /tmp/pip-install-t97hq5n_/python-akismet/
Complete output (7 lines):
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/pip-install-t97hq5n_/python-akismet/setup.py", line 186, in <module>
    install_requires = [str(ir.req) for ir in requirements]
  File "/tmp/pip-install-t97hq5n_/python-akismet/setup.py", line 186, in <listcomp>
    install_requires = [str(ir.req) for ir in requirements]
AttributeError: 'ParsedRequirement' object has no attribute 'req'
----------------------------------------

ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Twitter link

The twitter part of the social module is not working. you can input a twitter name/link, it will show up but when you try to click it it won't take you to the twitter profile but it will just open a new window of the repo itself

后台队列进程无法启动

根据手册安装到最后执行
nohup ./manage.py rqworker high > /dev/null &
nohup ./manage.py rqworker default > /dev/null &
无法执行,我查看了一下manage.py没有rqworker这个启动参数,是文档问题吗?还是安装不对。

使用docker部署 后期迁移数据问题

我想请问下后期如果我想换服务器迁移数据。直接拷贝dcrm文件夹重新构建下就可以了吗。 在后台修改的信息 上传的包这些数据在外部dcrm文件夹内还是在docker容器内?

NoReverseMatch at /index/

I upload 500 packages

Debug log
`

Exception Type: NoReverseMatch
Reverse for 'index_page' with arguments '(28,)' not found. 1 pattern(s) tried: ['index/(?P\d?)/?$']
/usr/local/lib/python3.7/dist-packages/django/urls/resolvers.py in _reverse_with_prefix, line 497
/usr/local/bin/uwsgi

`

后台Photologue-Galleries-添加 gallery报错

点击添加 gallery报错( build_attrs() got an unexpected keyword argument 'name' )
原因为sortedm2m不兼容django 1.11
目前sortedm2m作者已经解决更新。用作者sortedm2m-1.5.0版本替换sortedm2m文件。bug fix

Upload screenshot

When trying to upload a screenshot for a package version, if you click on the upload form and choose a photo it will say "Upload failed, invalid form". However if you drag and drop it, it works

导入软件包的时候出错

MySQL Query ERROR
[1054] Unknown column 'Section1' in 'field list'
[Query] UPDATE apt_Packages SET Package='apt.cydiatieba.topthebig',Version='1.4-3',Section='TB-工具',Section1='iOS10',Section2='iOS11',Maintainer='Fish [email protected]',Depends='firmware (>= 7.0), mobilesubstrate (>= 0.9.5000), preferenceloader (>= 2.2.2)',Conflicts='org.thebigboss.datameter',Replaces='org.thebigboss.datameter',Architecture='iphoneos-arm',Installed-Size='1212',Name='DataMeter 流量监控',Author='Minuit [email protected]',Sponsor='Fish [email protected]',Icon='file:///Library/PreferenceBundles/DataMeterSettings.bundle/[email protected]',Tag='purpose::extension, compatible::ios7, compatible::ios8, compatible::ios9\n',Size='243584',Filename='../downloads/20190224/xjEbqwGAyml2M5a755OCdqmAzD4vqAfCXkSMsfHN.deb',MD5sum='2d5252de33ad12ea3450422eb3ead562',CreateStamp='2019-02-24 19:19:31',Stat='2',Depiction='http://apt.yordon.ml/index.php?pid=2' WHERE ID='2'

请问这个是什么意思,该怎么解决,感谢大佬

我在群晖上搭建DCRM,遇到点问题

直接跑的docker-compose.yml,前面各种错误,各种百度后命令成功跑完,但打开ip:端口,出现

Request Method: GET
http://10.10.10.10:8888/index/
1.11.23
ProgrammingError
(1146, "Table 'DCRM.django_site' doesn't exist")
/usr/local/lib/python3.7/site-packages/MySQLdb/connections.py in query, line 224
/usr/local/bin/uwsgi
3.7.5
['.', '', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages']
Sat, 30 Nov 2019 13:33:20 +0800

应该是数据库没对,不知道怎么解决,我是直接跑的第二条命令,第一条git clone --depth 1 https://github.com/82Flex/DCRM.git && cd DCRM
-ash: git: command not found
应该是没安装git
能帮忙解决一下吗

InvalidTemplateLibrary

Invalid template library specified. ImportError raised when trying to load 'threadedcomments.templatetags.threadedcommentstags': cannot import name FreeThreadedComment

安装完成后打开直接报错,所有的插件都已经安装了,请问这个是什么情况,如果我去掉threadedcomments可以正常打开首页,但是内页无法打开

is a directory

最后一步build提示目录是一个文件夹,不知道是哪个命令出错了
IOError at /admin/WEIPDCRM/build/add/
[Errno 21] Is a directory: u'/www/wwwroot/DCRM/resources/'
Request Method: POST
Request URL: http://jp.yordon.ml/admin/WEIPDCRM/build/add/
Django Version: 1.10.5
Exception Type: IOError
Exception Value:
[Errno 21] Is a directory: u'/www/wwwroot/DCRM/resources/'
Exception Location: /usr/lib/python2.7/shutil.py in copyfile, line 82
Python Executable: /usr/local/bin/uwsgi
Python Version: 2.7.12
Python Path:
['.',
'',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PILcompat']

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.