Compare commits
18 commits
py3-latest
...
rust-impl-
Author | SHA1 | Date | |
---|---|---|---|
![]() |
d7759673bc | ||
![]() |
a6f0ece23c | ||
![]() |
bada2bdb5d | ||
![]() |
523951f85c | ||
![]() |
588442e20e | ||
![]() |
4bb00d8d0e | ||
![]() |
0fe65b2dbc | ||
![]() |
edd7675226 | ||
![]() |
dba0f7d9c8 | ||
![]() |
02d7305004 | ||
![]() |
8fe92df625 | ||
![]() |
112718ffe4 | ||
![]() |
62970de60b | ||
![]() |
57e840b6ad | ||
![]() |
3121aad206 | ||
![]() |
3fdcef7e46 | ||
![]() |
400f2c2fe5 | ||
![]() |
9455af0cdb |
13 changed files with 56 additions and 168 deletions
|
@ -1,40 +0,0 @@
|
|||
name: Build Docker Image on Commit
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
tags:
|
||||
- '!' # Exclude tags
|
||||
|
||||
jobs:
|
||||
build-and-publish:
|
||||
runs-on: docker-builder
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set REPO_VARS
|
||||
id: repo-url
|
||||
run: |
|
||||
echo "REPO_HOST=$(echo "${{ github.server_url }}" | sed 's~http[s]*://~~g')" >> $GITHUB_ENV
|
||||
echo "REPO_PATH=${{ github.repository }}" >> $GITHUB_ENV
|
||||
|
||||
- name: Login to OCI registry
|
||||
run: |
|
||||
echo "${{ secrets.OCI_TOKEN }}" | docker login $REPO_HOST -u "${{ secrets.OCI_USER }}" --password-stdin
|
||||
|
||||
- name: Build and push Docker images
|
||||
run: |
|
||||
# Build Docker image with commit SHA
|
||||
docker build -t $REPO_HOST/$REPO_PATH:${{ github.sha }} .
|
||||
docker push $REPO_HOST/$REPO_PATH:${{ github.sha }}
|
||||
|
||||
# Build Docker image with nightly tag
|
||||
docker tag $REPO_HOST/$REPO_PATH:${{ github.sha }} $REPO_HOST/$REPO_PATH:nightly
|
||||
docker push $REPO_HOST/$REPO_PATH:nightly
|
||||
|
||||
# Remove local images to save storage
|
||||
docker rmi $REPO_HOST/$REPO_PATH:${{ github.sha }}
|
||||
docker rmi $REPO_HOST/$REPO_PATH:nightly
|
|
@ -1,37 +0,0 @@
|
|||
name: Build and Publish Docker Image on Tag
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
build-and-publish:
|
||||
runs-on: docker-builder
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set REPO_VARS
|
||||
id: repo-url
|
||||
run: |
|
||||
echo "REPO_HOST=$(echo "${{ github.server_url }}" | sed 's~http[s]*://~~g')" >> $GITHUB_ENV
|
||||
echo "REPO_PATH=${{ github.repository }}" >> $GITHUB_ENV
|
||||
|
||||
- name: Login to OCI registry
|
||||
run: |
|
||||
echo "${{ secrets.OCI_TOKEN }}" | docker login $REPO_HOST -u "${{ secrets.OCI_USER }}" --password-stdin
|
||||
|
||||
- name: Build and push Docker image
|
||||
run: |
|
||||
TAG=${{ github.ref_name }} # Get the tag name from the context
|
||||
# Build and push multi-platform Docker images
|
||||
docker build -t $REPO_HOST/$REPO_PATH:$TAG --push .
|
||||
# Tag and push latest
|
||||
docker tag $REPO_HOST/$REPO_PATH:$TAG $REPO_HOST/$REPO_PATH:latest
|
||||
docker push $REPO_HOST/$REPO_PATH:latest
|
||||
|
||||
# Remove the local image to save storage
|
||||
docker rmi $REPO_HOST/$REPO_PATH:$TAG
|
||||
docker rmi $REPO_HOST/$REPO_PATH:latest
|
7
.github/workflows/tests.yml
vendored
7
.github/workflows/tests.yml
vendored
|
@ -4,17 +4,18 @@ on: [push, pull_request]
|
|||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
runs-on: ubuntu-18.04
|
||||
strategy:
|
||||
max-parallel: 16
|
||||
matrix:
|
||||
python-version: ["3.7", "3.8", "3.9"]
|
||||
python-version: [3.6, 3.7, 3.8, 3.9]
|
||||
|
||||
steps:
|
||||
- name: Checkout ZeroNet
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: "true"
|
||||
submodules: 'true'
|
||||
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@v1
|
||||
|
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -7,7 +7,6 @@ __pycache__/
|
|||
|
||||
# Hidden files
|
||||
.*
|
||||
!/.forgejo
|
||||
!/.github
|
||||
!/.gitignore
|
||||
!/.travis.yml
|
||||
|
|
|
@ -1,12 +1,3 @@
|
|||
### ZeroNet 0.9.0 (2023-07-12) Rev4630
|
||||
- Fix RDos Issue in Plugins https://github.com/ZeroNetX/ZeroNet-Plugins/pull/9
|
||||
- Add trackers to Config.py for failsafety incase missing trackers.txt
|
||||
- Added Proxy links
|
||||
- Fix pysha3 dep installation issue
|
||||
- FileRequest -> Remove Unnecessary check, Fix error wording
|
||||
- Fix Response when site is missing for `actionAs`
|
||||
|
||||
|
||||
### ZeroNet 0.8.5 (2023-02-12) Rev4625
|
||||
- Fix(https://github.com/ZeroNetX/ZeroNet/pull/202) for SSL cert gen failed on Windows.
|
||||
- default theme-class for missing value in `users.json`.
|
||||
|
|
18
README.md
18
README.md
|
@ -99,24 +99,6 @@ Decentralized websites using Bitcoin crypto and the BitTorrent network - https:/
|
|||
#### Docker
|
||||
There is an official image, built from source at: https://hub.docker.com/r/canewsin/zeronet/
|
||||
|
||||
### Online Proxies
|
||||
Proxies are like seed boxes for sites(i.e ZNX runs on a cloud vps), you can try zeronet experience from proxies. Add your proxy below if you have one.
|
||||
|
||||
#### Official ZNX Proxy :
|
||||
|
||||
https://proxy.zeronet.dev/
|
||||
|
||||
https://zeronet.dev/
|
||||
|
||||
#### From Community
|
||||
|
||||
https://0net-preview.com/
|
||||
|
||||
https://portal.ngnoid.tv/
|
||||
|
||||
https://zeronet.ipfsscan.io/
|
||||
|
||||
|
||||
### Install from source
|
||||
|
||||
- `wget https://github.com/ZeroNetX/ZeroNet/releases/latest/download/ZeroNet-src.zip`
|
||||
|
|
2
plugins
2
plugins
|
@ -1 +1 @@
|
|||
Subproject commit 689d9309f73371f4681191b125ec3f2e14075eeb
|
||||
Subproject commit 412d37030beca51244741e138b5f6d97f8f1a652
|
|
@ -3,7 +3,7 @@ greenlet==0.4.16; python_version <= "3.6"
|
|||
gevent>=20.9.0; python_version >= "3.7"
|
||||
msgpack>=0.4.4
|
||||
base58
|
||||
merkletools @ git+https://github.com/ZeroNetX/pymerkletools.git@dev
|
||||
merkletools
|
||||
rsa
|
||||
PySocks>=1.6.8
|
||||
pyasn1
|
||||
|
|
|
@ -13,8 +13,8 @@ import time
|
|||
class Config(object):
|
||||
|
||||
def __init__(self, argv):
|
||||
self.version = "0.9.0"
|
||||
self.rev = 4630
|
||||
self.version = "0.8.5"
|
||||
self.rev = 4625
|
||||
self.argv = argv
|
||||
self.action = None
|
||||
self.test_parser = None
|
||||
|
@ -81,14 +81,7 @@ class Config(object):
|
|||
def createArguments(self):
|
||||
from Crypt import CryptHash
|
||||
access_key_default = CryptHash.random(24, "base64") # Used to allow restrited plugins when multiuser plugin is enabled
|
||||
trackers = [
|
||||
"http://open.acgnxtracker.com:80/announce", # DE
|
||||
"http://tracker.bt4g.com:2095/announce", # Cloudflare
|
||||
"http://tracker.files.fm:6969/announce",
|
||||
"http://t.publictracker.xyz:6969/announce",
|
||||
"https://tracker.lilithraws.cf:443/announce",
|
||||
"https://tracker.babico.name.tr:443/announce",
|
||||
]
|
||||
trackers = []
|
||||
# Platform specific
|
||||
if sys.platform.startswith("win"):
|
||||
coffeescript = "type %s | tools\\coffee\\coffee.cmd"
|
||||
|
|
|
@ -128,7 +128,7 @@ class FileRequest(object):
|
|||
body = peer.getFile(site.address, inner_path).read()
|
||||
except Exception as err:
|
||||
site.log.debug("Can't download updated file %s: %s" % (inner_path, err))
|
||||
self.response({"error": "Invalid File update: Failed to download updated file content"})
|
||||
self.response({"error": "File invalid update: Can't download updaed file"})
|
||||
self.connection.badAction(5)
|
||||
return
|
||||
|
||||
|
@ -165,7 +165,7 @@ class FileRequest(object):
|
|||
|
||||
site.onFileDone(inner_path) # Trigger filedone
|
||||
|
||||
# Download every changed file from peer
|
||||
if inner_path.endswith("content.json"): # Download every changed file from peer
|
||||
peer = site.addPeer(self.connection.ip, self.connection.port, return_peer=True, source="update") # Add or get peer
|
||||
# On complete publish to other peers
|
||||
diffs = params.get("diffs", {})
|
||||
|
@ -177,6 +177,8 @@ class FileRequest(object):
|
|||
del self.server.files_parsing[file_uri]
|
||||
|
||||
gevent.spawn(downloader)
|
||||
else:
|
||||
del self.server.files_parsing[file_uri]
|
||||
|
||||
self.response({"ok": "Thanks, file %s updated!" % inner_path})
|
||||
self.connection.goodAction()
|
||||
|
|
|
@ -327,10 +327,7 @@ class UiWebsocket(object):
|
|||
|
||||
def actionAs(self, to, address, cmd, params=[]):
|
||||
if not self.hasSitePermission(address, cmd=cmd):
|
||||
#TODO! Return this as error ?
|
||||
return self.response(to, "No permission for site %s" % address)
|
||||
if not self.server.sites.get(address):
|
||||
return self.response(to, {"error": "Site Does Not Exist: %s" % address})
|
||||
req_self = copy.copy(self)
|
||||
req_self.site = self.server.sites.get(address)
|
||||
req_self.hasCmdPermission = self.hasCmdPermission # Use the same permissions as current site
|
||||
|
|
|
@ -12,7 +12,7 @@ from Config import config
|
|||
from util import helper
|
||||
from Debug import Debug
|
||||
|
||||
|
||||
# Fully Implemented in zeronet-rs::src::core::user.rs
|
||||
@PluginManager.acceptPlugins
|
||||
class User(object):
|
||||
def __init__(self, master_address=None, master_seed=None, data={}):
|
||||
|
|
|
@ -8,7 +8,7 @@ from .User import User
|
|||
from Plugin import PluginManager
|
||||
from Config import config
|
||||
|
||||
|
||||
# Fully Implemented in zeronet-rs::src::io::utils.rs & zeronet-rs::src::io::user.rs
|
||||
@PluginManager.acceptPlugins
|
||||
class UserManager(object):
|
||||
def __init__(self):
|
||||
|
|
Loading…
Reference in a new issue