frp-tunnel 1.0.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. frp_tunnel-1.0.4/.github/ISSUE_TEMPLATE/bug_report.yml +87 -0
  2. frp_tunnel-1.0.4/.github/ISSUE_TEMPLATE/feature_request.yml +63 -0
  3. frp_tunnel-1.0.4/.github/workflows/ci.yml +83 -0
  4. frp_tunnel-1.0.4/.github/workflows/publish.yml +56 -0
  5. frp_tunnel-1.0.4/.gitignore +126 -0
  6. frp_tunnel-1.0.4/CHANGELOG.md +72 -0
  7. frp_tunnel-1.0.4/CONTRIBUTING.md +149 -0
  8. frp_tunnel-1.0.4/GITHUB_SECRETS.md +80 -0
  9. frp_tunnel-1.0.4/LICENSE +21 -0
  10. frp_tunnel-1.0.4/PKG-INFO +170 -0
  11. frp_tunnel-1.0.4/PUBLISHING.md +93 -0
  12. frp_tunnel-1.0.4/QUICKSTART.md +51 -0
  13. frp_tunnel-1.0.4/README.md +131 -0
  14. frp_tunnel-1.0.4/README_CN.md +131 -0
  15. frp_tunnel-1.0.4/ROADMAP.md +248 -0
  16. frp_tunnel-1.0.4/SECURITY.md +92 -0
  17. frp_tunnel-1.0.4/SKILL_SHOWCASE.md +201 -0
  18. frp_tunnel-1.0.4/config/frpc.ini +10 -0
  19. frp_tunnel-1.0.4/config/frps.ini +22 -0
  20. frp_tunnel-1.0.4/config/ssh-config-template +35 -0
  21. frp_tunnel-1.0.4/docs/CONFIGURATION.md +249 -0
  22. frp_tunnel-1.0.4/docs/INSTALLATION.md +116 -0
  23. frp_tunnel-1.0.4/docs/TROUBLESHOOTING.md +387 -0
  24. frp_tunnel-1.0.4/examples/automation-example.sh +303 -0
  25. frp_tunnel-1.0.4/examples/colab-example.ipynb +283 -0
  26. frp_tunnel-1.0.4/frp_tunnel/__init__.py +9 -0
  27. frp_tunnel-1.0.4/frp_tunnel/_version.py +1 -0
  28. frp_tunnel-1.0.4/frp_tunnel/cli.py +172 -0
  29. frp_tunnel-1.0.4/frp_tunnel/core/__init__.py +16 -0
  30. frp_tunnel-1.0.4/frp_tunnel/core/config.py +98 -0
  31. frp_tunnel-1.0.4/frp_tunnel/core/installer.py +118 -0
  32. frp_tunnel-1.0.4/frp_tunnel/core/platform.py +92 -0
  33. frp_tunnel-1.0.4/frp_tunnel/core/tunnel.py +208 -0
  34. frp_tunnel-1.0.4/frp_tunnel.egg-info/PKG-INFO +170 -0
  35. frp_tunnel-1.0.4/frp_tunnel.egg-info/SOURCES.txt +47 -0
  36. frp_tunnel-1.0.4/frp_tunnel.egg-info/dependency_links.txt +1 -0
  37. frp_tunnel-1.0.4/frp_tunnel.egg-info/entry_points.txt +3 -0
  38. frp_tunnel-1.0.4/frp_tunnel.egg-info/requires.txt +12 -0
  39. frp_tunnel-1.0.4/frp_tunnel.egg-info/top_level.txt +1 -0
  40. frp_tunnel-1.0.4/publish.bat +43 -0
  41. frp_tunnel-1.0.4/publish.py +68 -0
  42. frp_tunnel-1.0.4/publish.sh +44 -0
  43. frp_tunnel-1.0.4/pyproject.toml +64 -0
  44. frp_tunnel-1.0.4/scripts/frp-client-colab.sh +239 -0
  45. frp_tunnel-1.0.4/scripts/frp-client-linux.sh +164 -0
  46. frp_tunnel-1.0.4/scripts/frp-client-windows.ps1 +190 -0
  47. frp_tunnel-1.0.4/scripts/frp-server-gcp.sh +156 -0
  48. frp_tunnel-1.0.4/setup-github.sh +44 -0
  49. frp_tunnel-1.0.4/setup.cfg +4 -0
@@ -0,0 +1,87 @@
1
+ name: Bug Report
2
+ description: File a bug report to help us improve
3
+ title: "[Bug]: "
4
+ labels: ["bug", "triage"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thanks for taking the time to fill out this bug report!
10
+
11
+ - type: input
12
+ id: contact
13
+ attributes:
14
+ label: Contact Details
15
+ description: How can we get in touch with you if we need more info?
16
+ placeholder: ex. email@example.com
17
+ validations:
18
+ required: false
19
+
20
+ - type: dropdown
21
+ id: platform
22
+ attributes:
23
+ label: Platform
24
+ description: What platform are you running on?
25
+ options:
26
+ - Google Colab
27
+ - Linux (Ubuntu/Debian)
28
+ - Linux (CentOS/RHEL)
29
+ - macOS
30
+ - Windows
31
+ - Other
32
+ validations:
33
+ required: true
34
+
35
+ - type: dropdown
36
+ id: component
37
+ attributes:
38
+ label: Component
39
+ description: Which component is affected?
40
+ options:
41
+ - FRP Server Setup
42
+ - FRP Client (Colab)
43
+ - FRP Client (Linux/macOS)
44
+ - FRP Client (Windows)
45
+ - SSH Configuration
46
+ - Documentation
47
+ - Other
48
+ validations:
49
+ required: true
50
+
51
+ - type: textarea
52
+ id: what-happened
53
+ attributes:
54
+ label: What happened?
55
+ description: Also tell us, what did you expect to happen?
56
+ placeholder: Tell us what you see!
57
+ value: "A bug happened!"
58
+ validations:
59
+ required: true
60
+
61
+ - type: textarea
62
+ id: steps
63
+ attributes:
64
+ label: Steps to Reproduce
65
+ description: Please provide detailed steps to reproduce the issue
66
+ placeholder: |
67
+ 1. Run command '...'
68
+ 2. See error '...'
69
+ 3. Expected '...' but got '...'
70
+ validations:
71
+ required: true
72
+
73
+ - type: textarea
74
+ id: logs
75
+ attributes:
76
+ label: Relevant log output
77
+ description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
78
+ render: shell
79
+
80
+ - type: checkboxes
81
+ id: terms
82
+ attributes:
83
+ label: Code of Conduct
84
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/cicy-dev/frp-tunnel/blob/main/CONTRIBUTING.md#code-of-conduct)
85
+ options:
86
+ - label: I agree to follow this project's Code of Conduct
87
+ required: true
@@ -0,0 +1,63 @@
1
+ name: Feature Request
2
+ description: Suggest an idea for this project
3
+ title: "[Feature]: "
4
+ labels: ["enhancement"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thanks for suggesting a new feature!
10
+
11
+ - type: textarea
12
+ id: problem
13
+ attributes:
14
+ label: Is your feature request related to a problem?
15
+ description: A clear and concise description of what the problem is.
16
+ placeholder: I'm always frustrated when...
17
+ validations:
18
+ required: false
19
+
20
+ - type: textarea
21
+ id: solution
22
+ attributes:
23
+ label: Describe the solution you'd like
24
+ description: A clear and concise description of what you want to happen.
25
+ validations:
26
+ required: true
27
+
28
+ - type: textarea
29
+ id: alternatives
30
+ attributes:
31
+ label: Describe alternatives you've considered
32
+ description: A clear and concise description of any alternative solutions or features you've considered.
33
+ validations:
34
+ required: false
35
+
36
+ - type: dropdown
37
+ id: priority
38
+ attributes:
39
+ label: Priority
40
+ description: How important is this feature to you?
41
+ options:
42
+ - Low
43
+ - Medium
44
+ - High
45
+ - Critical
46
+ validations:
47
+ required: true
48
+
49
+ - type: checkboxes
50
+ id: implementation
51
+ attributes:
52
+ label: Implementation
53
+ description: Are you willing to help implement this feature?
54
+ options:
55
+ - label: I'm willing to submit a pull request for this feature
56
+ - label: I can help with testing
57
+ - label: I can help with documentation
58
+
59
+ - type: textarea
60
+ id: additional
61
+ attributes:
62
+ label: Additional context
63
+ description: Add any other context or screenshots about the feature request here.
@@ -0,0 +1,83 @@
1
+ name: CI/CD
2
+
3
+ on:
4
+ push:
5
+ branches: [ main, develop ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ test-scripts:
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - uses: actions/checkout@v3
15
+
16
+ - name: Make scripts executable
17
+ run: chmod +x scripts/*.sh examples/*.sh
18
+
19
+ - name: Test script syntax
20
+ run: |
21
+ for script in scripts/*.sh examples/*.sh; do
22
+ echo "Testing $script"
23
+ bash -n "$script"
24
+ done
25
+
26
+ - name: Install shellcheck
27
+ run: sudo apt-get install -y shellcheck
28
+
29
+ - name: Run shellcheck
30
+ run: |
31
+ for script in scripts/*.sh examples/*.sh; do
32
+ echo "Checking $script"
33
+ shellcheck "$script" || true
34
+ done
35
+
36
+ test-powershell:
37
+ runs-on: windows-latest
38
+
39
+ steps:
40
+ - uses: actions/checkout@v3
41
+
42
+ - name: Test PowerShell script syntax
43
+ run: |
44
+ Get-ChildItem -Path scripts -Filter "*.ps1" | ForEach-Object {
45
+ Write-Host "Testing $($_.Name)"
46
+ powershell -NoProfile -ExecutionPolicy Bypass -Command "& { . '$($_.FullName)'; exit 0 }" -WhatIf
47
+ }
48
+ shell: powershell
49
+
50
+ test-documentation:
51
+ runs-on: ubuntu-latest
52
+
53
+ steps:
54
+ - uses: actions/checkout@v3
55
+
56
+ - name: Install markdown linter
57
+ run: npm install -g markdownlint-cli
58
+
59
+ - name: Lint markdown files
60
+ run: |
61
+ markdownlint README.md docs/*.md || true
62
+
63
+ - name: Check links in documentation
64
+ run: |
65
+ # Simple link check - can be enhanced with proper tools
66
+ grep -r "http" docs/ README.md || true
67
+
68
+ security-scan:
69
+ runs-on: ubuntu-latest
70
+
71
+ steps:
72
+ - uses: actions/checkout@v3
73
+
74
+ - name: Run security scan
75
+ run: |
76
+ # Check for hardcoded secrets/tokens
77
+ if grep -r "frp_[a-f0-9]\{32\}" scripts/ examples/ || \
78
+ grep -r "password.*=" scripts/ examples/ || \
79
+ grep -r "secret.*=" scripts/ examples/; then
80
+ echo "⚠️ Potential hardcoded secrets found"
81
+ exit 1
82
+ fi
83
+ echo "✅ No hardcoded secrets detected"
@@ -0,0 +1,56 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+ push:
7
+ tags:
8
+ - 'v*.*.*'
9
+ workflow_dispatch:
10
+ inputs:
11
+ test_pypi:
12
+ description: 'Publish to TestPyPI instead of PyPI'
13
+ required: false
14
+ default: false
15
+ type: boolean
16
+
17
+ jobs:
18
+ publish:
19
+ runs-on: ubuntu-latest
20
+ permissions:
21
+ id-token: write
22
+ contents: read
23
+
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+ with:
27
+ fetch-depth: 0
28
+
29
+ - name: Set up Python
30
+ uses: actions/setup-python@v4
31
+ with:
32
+ python-version: '3.9'
33
+
34
+ - name: Install dependencies
35
+ run: |
36
+ python -m pip install --upgrade pip
37
+ pip install build twine
38
+
39
+ - name: Build package
40
+ run: python -m build
41
+
42
+ - name: Check package
43
+ run: twine check dist/*
44
+
45
+ - name: Publish to TestPyPI
46
+ if: github.event.inputs.test_pypi == 'true'
47
+ uses: pypa/gh-action-pypi-publish@release/v1
48
+ with:
49
+ repository-url: https://test.pypi.org/legacy/
50
+ password: ${{ secrets.TEST_PYPI_API_TOKEN }}
51
+
52
+ - name: Publish to PyPI
53
+ if: github.event.inputs.test_pypi != 'true'
54
+ uses: pypa/gh-action-pypi-publish@release/v1
55
+ with:
56
+ password: ${{ secrets.PYPI_API_TOKEN }}
@@ -0,0 +1,126 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ *.manifest
32
+ *.spec
33
+
34
+ # Installer logs
35
+ pip-log.txt
36
+ pip-delete-this-directory.txt
37
+
38
+ # Unit test / coverage reports
39
+ htmlcov/
40
+ .tox/
41
+ .nox/
42
+ .coverage
43
+ .coverage.*
44
+ .cache
45
+ nosetests.xml
46
+ coverage.xml
47
+ *.cover
48
+ *.py,cover
49
+ .hypothesis/
50
+ .pytest_cache/
51
+
52
+ # Jupyter Notebook
53
+ .ipynb_checkpoints
54
+
55
+ # IPython
56
+ profile_default/
57
+ ipython_config.py
58
+
59
+ # pyenv
60
+ .python-version
61
+
62
+ # pipenv
63
+ Pipfile.lock
64
+
65
+ # PEP 582
66
+ __pypackages__/
67
+
68
+ # Celery stuff
69
+ celerybeat-schedule
70
+ celerybeat.pid
71
+
72
+ # SageMath parsed files
73
+ *.sage.py
74
+
75
+ # Environments
76
+ .env
77
+ .venv
78
+ env/
79
+ venv/
80
+ ENV/
81
+ env.bak/
82
+ venv.bak/
83
+
84
+ # Spyder project settings
85
+ .spyderproject
86
+ .spyproject
87
+
88
+ # Rope project settings
89
+ .ropeproject
90
+
91
+ # mkdocs documentation
92
+ /site
93
+
94
+ # mypy
95
+ .mypy_cache/
96
+ .dmypy.json
97
+ dmypy.json
98
+
99
+ # Pyre type checker
100
+ .pyre/
101
+
102
+ # FRP specific
103
+ *.log
104
+ *.pid
105
+ frps
106
+ frpc
107
+ frps.exe
108
+ frpc.exe
109
+
110
+ # Local configuration
111
+ .frp-tunnel/
112
+ config/local_*
113
+
114
+ # IDE
115
+ .vscode/
116
+ .idea/
117
+ *.swp
118
+ *.swo
119
+
120
+ # macOS
121
+ .DS_Store
122
+
123
+ # Windows
124
+ Thumbs.db
125
+ ehthumbs.db
126
+ Desktop.ini
@@ -0,0 +1,72 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ### Added
11
+ - Initial project structure
12
+ - Comprehensive documentation
13
+ - Multi-platform support
14
+ - GitHub Actions CI/CD pipeline
15
+
16
+ ## [1.0.0] - 2026-02-04
17
+
18
+ ### Added
19
+ - FRP server setup script for GCP/VPS
20
+ - FRP client scripts for multiple platforms:
21
+ - Google Colab
22
+ - Linux/macOS
23
+ - Windows PowerShell
24
+ - Automated SSH tunnel configuration
25
+ - Token-based authentication system
26
+ - Multi-client support (ports 6001-6010)
27
+ - Smart configuration management
28
+ - Real-time monitoring and diagnostics
29
+ - Comprehensive documentation:
30
+ - Installation guide
31
+ - Configuration reference
32
+ - Troubleshooting guide
33
+ - Example implementations:
34
+ - Jupyter notebook for Colab
35
+ - Automation script for batch operations
36
+ - Security features:
37
+ - RSA key authentication
38
+ - Token validation
39
+ - Firewall configuration
40
+ - Project templates:
41
+ - GitHub issue templates
42
+ - Pull request template
43
+ - Contributing guidelines
44
+ - Security policy
45
+
46
+ ### Features
47
+ - **One-click deployment**: Single command setup for all platforms
48
+ - **Cross-platform compatibility**: Works on Linux, Windows, macOS, and Google Colab
49
+ - **Secure by default**: Implements RSA key authentication and token validation
50
+ - **Scalable architecture**: Supports up to 10 concurrent client connections
51
+ - **Smart configuration**: Preserves existing configs, optional force overwrite
52
+ - **Comprehensive logging**: Detailed logs for debugging and monitoring
53
+ - **Auto-recovery**: Built-in health checks and restart mechanisms
54
+
55
+ ### Documentation
56
+ - Complete README with quick start guide
57
+ - Detailed installation instructions
58
+ - Configuration reference with examples
59
+ - Troubleshooting guide with common solutions
60
+ - Contributing guidelines for developers
61
+ - Security policy and best practices
62
+ - Example implementations and automation scripts
63
+
64
+ ### Infrastructure
65
+ - GitHub Actions CI/CD pipeline
66
+ - Automated testing for shell scripts and PowerShell
67
+ - Security scanning for hardcoded secrets
68
+ - Documentation linting and link checking
69
+ - Issue and PR templates for better collaboration
70
+
71
+ [Unreleased]: https://github.com/cicy-dev/frp-tunnel/compare/v1.0.0...HEAD
72
+ [1.0.0]: https://github.com/cicy-dev/frp-tunnel/releases/tag/v1.0.0
@@ -0,0 +1,149 @@
1
+ # Contributing to FRP SSH Tunnel
2
+
3
+ We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:
4
+
5
+ - Reporting a bug
6
+ - Discussing the current state of the code
7
+ - Submitting a fix
8
+ - Proposing new features
9
+ - Becoming a maintainer
10
+
11
+ ## Development Process
12
+
13
+ We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.
14
+
15
+ ## Pull Requests
16
+
17
+ Pull requests are the best way to propose changes to the codebase. We actively welcome your pull requests:
18
+
19
+ 1. Fork the repo and create your branch from `main`.
20
+ 2. If you've added code that should be tested, add tests.
21
+ 3. If you've changed APIs, update the documentation.
22
+ 4. Ensure the test suite passes.
23
+ 5. Make sure your code lints.
24
+ 6. Issue that pull request!
25
+
26
+ ## Any contributions you make will be under the MIT Software License
27
+
28
+ In short, when you submit code changes, your submissions are understood to be under the same [MIT License](http://choosealicense.com/licenses/mit/) that covers the project. Feel free to contact the maintainers if that's a concern.
29
+
30
+ ## Report bugs using GitHub's [issue tracker](https://github.com/cicy-dev/frp-tunnel/issues)
31
+
32
+ We use GitHub issues to track public bugs. Report a bug by [opening a new issue](https://github.com/cicy-dev/frp-tunnel/issues/new); it's that easy!
33
+
34
+ ## Write bug reports with detail, background, and sample code
35
+
36
+ **Great Bug Reports** tend to have:
37
+
38
+ - A quick summary and/or background
39
+ - Steps to reproduce
40
+ - Be specific!
41
+ - Give sample code if you can
42
+ - What you expected would happen
43
+ - What actually happens
44
+ - Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
45
+
46
+ ## Development Setup
47
+
48
+ ### Prerequisites
49
+
50
+ - Linux/macOS/Windows with WSL
51
+ - Bash 4.0+
52
+ - SSH client
53
+ - Git
54
+
55
+ ### Local Development
56
+
57
+ ```bash
58
+ # Clone the repository
59
+ git clone https://github.com/cicy-dev/frp-tunnel.git
60
+ cd frp-tunnel
61
+
62
+ # Make scripts executable
63
+ chmod +x scripts/*.sh
64
+
65
+ # Test server script
66
+ ./scripts/frp-server-gcp.sh -t
67
+
68
+ # Test client script
69
+ ./scripts/frp-client-colab.sh --help
70
+ ```
71
+
72
+ ### Testing
73
+
74
+ ```bash
75
+ # Run basic tests
76
+ ./tests/run-tests.sh
77
+
78
+ # Test specific platform
79
+ ./tests/test-linux.sh
80
+ ./tests/test-windows.ps1
81
+ ```
82
+
83
+ ## Code Style
84
+
85
+ ### Shell Scripts
86
+
87
+ - Use `#!/bin/bash` shebang
88
+ - Use `set -e` for error handling
89
+ - Use meaningful variable names
90
+ - Add comments for complex logic
91
+ - Follow [Google Shell Style Guide](https://google.github.io/styleguide/shellguide.html)
92
+
93
+ ### PowerShell Scripts
94
+
95
+ - Use approved verbs
96
+ - Include help documentation
97
+ - Handle errors gracefully
98
+ - Follow [PowerShell Best Practices](https://docs.microsoft.com/en-us/powershell/scripting/developer/cmdlet/strongly-encouraged-development-guidelines)
99
+
100
+ ### Documentation
101
+
102
+ - Use clear, concise language
103
+ - Include code examples
104
+ - Update README.md for new features
105
+ - Add troubleshooting entries for common issues
106
+
107
+ ## Commit Messages
108
+
109
+ - Use the present tense ("Add feature" not "Added feature")
110
+ - Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
111
+ - Limit the first line to 72 characters or less
112
+ - Reference issues and pull requests liberally after the first line
113
+
114
+ ## Feature Requests
115
+
116
+ We welcome feature requests! Please:
117
+
118
+ 1. Check if the feature already exists
119
+ 2. Search existing issues to avoid duplicates
120
+ 3. Provide detailed use cases
121
+ 4. Consider implementation complexity
122
+
123
+ ## Code of Conduct
124
+
125
+ ### Our Pledge
126
+
127
+ We pledge to make participation in our project a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
128
+
129
+ ### Our Standards
130
+
131
+ Examples of behavior that contributes to creating a positive environment include:
132
+
133
+ - Using welcoming and inclusive language
134
+ - Being respectful of differing viewpoints and experiences
135
+ - Gracefully accepting constructive criticism
136
+ - Focusing on what is best for the community
137
+ - Showing empathy towards other community members
138
+
139
+ ### Enforcement
140
+
141
+ Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
142
+
143
+ ## License
144
+
145
+ By contributing, you agree that your contributions will be licensed under its MIT License.
146
+
147
+ ## References
148
+
149
+ This document was adapted from the open-source contribution guidelines for [Facebook's Draft](https://github.com/facebook/draft-js/blob/a9316a723f9e918afde44dea68b5f9f39b7d9b00/CONTRIBUTING.md)