Start Building#
Backend#
heroku#
Open the GitHub project link, give it a star, and fork this project.
Open Heroku's official website and log in. We need to obtain the Heroku account's api_key, click as shown
Scroll down, as shown, copy the content in the two boxes
Return to the GitHub project we just forked, and add two secrets named HEROKU_API_KEY
and HEROKU_EMAIL
as shown. The explanation is as follows:
HEROKU_API_KEY | The Heroku api_key obtained earlier |
---|---|
HEROKU_EMAIL | Email of the Heroku account |
Then, as shown, edit the .github/workflows/heroku.yml
file, modify the value of heroku_app_name
, it must be unique. I suggest creating a new project on the Heroku homepage with a unique name, then copy that name here and cancel the creation
- As shown, activate actions
Run the action as shown
- If everything goes well, this means success
At the same time, there is now an additional project on the Heroku account homepage
- Visit the following URL to check if the installation was successful
https://the name of the Heroku project.herokuapp.com/version
If it displays like this, then it is successful
koyeb#
Click this icon, then just leave everything as default
Wait until it shows like in the image at position 1, then visit the following address
The address in position 2/version
If it looks like this, it means success
okteto#
First, fork this project and log in to Okteto with GitHub https://cloud.okteto.com
There may be issues with registration, so if you can't register, try using another GitHub account. Generally, a long-used GitHub account can register normally.
Select this
Choose to deploy with GitHub
Select this and then click 'launch'
Then you don't need to worry about it.
Wait for the deployment to finish, which takes about two minutes.
When it shows running, the deployment is complete. Open this link in the browser
If you encounter a 504 timeout, 503, or any other error when opening in the browser,
Solution: Open incognito mode and switch browsers.
Open an incognito window, and add sub?
to the end of the link provided above. If the following image appears, it means completion
At this point, the deployment of the Clash subscription conversion backend subconver using Okteto is complete.
northflank#
As shown, the address in the image is: https://github.com/jth445600/subconverter-heroku-koyeb-northflank, remember to select http and check the box
Wait for it to finish deploying, click the button in the image to copy the address
Open a new tab, add “/version” to the copied address. If the returned result is as shown in the image, it means success
Frontend#
The frontend is built using free static web service providers. I recommend Vercel, but you can also use CF Pages.
-
Fork this GitHub project
-
Modify the default backend address by editing the src/views/Subconverter.vue file.
On line 258, in backendOptions, change http://127.0.0.1:25500
to the address returned by Heroku and Koyeb earlier.
Note: Do not delete the /sub?
at the end. The Heroku address is generally: application_name1.herokuapp.com
Koyeb will show the address here, and the same applies to Okteto.
Northflank will be the copied address.
Additionally, you can customize multiple backend address formats as follows
backendOptions: [
{ value: "https://subsc.ednovas.xyz/sub?" },
{ value: "http://api.tsutsu.cc:520/sub?" },
{ value: "https://api2.tsutsu.cc/sub?" },
{ value: "https://api.v1.mk/sub?" },
{ value: "https://subcon.dlj.tf/sub?" },
{ value: "https://api.dler.io/sub?" },
{ value: "https://api.wcc.best/sub?" },
{ value: "https://api.hope140.live/sub?" },
{ value: "https://sub.proxypoolv2.tk/sub?" },
{ value: "https://sub.id9.cc/sub?" },
],
More rules are as follows
{
label: "ACL4SSR",
options: [
{
label: "ACL4SSR_Online Default version with comprehensive grouping (synchronized with GitHub)",
value: "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online.ini"
},
{
label: "ACL4SSR_Online_AdblockPlus More ad-blocking (synchronized with GitHub)",
value: "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_AdblockPlus.ini"
},
{
label: "ACL4SSR_Online_NoAuto No automatic speed test (synchronized with GitHub)",
value:"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_NoAuto.ini"
},
{
label: "ACL4SSR_Online_NoReject No ad-blocking rules (synchronized with GitHub)",
value:"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_NoReject.ini"
},
{
label: "ACL4SSR_Online_Mini Simplified version (synchronized with GitHub)",
value:"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini.ini"
},
{
label: "ACL4SSR_Online_Mini_AdblockPlus.ini Simplified version with more ad-blocking (synchronized with GitHub)",
value:"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_AdblockPlus.ini"
},
{
label: "ACL4SSR_Online_Mini_NoAuto.ini Simplified version without automatic speed test (synchronized with GitHub)",
value:"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_NoAuto.ini"
},
{
label: "ACL4SSR_Online_Mini_Fallback.ini Simplified version with failover (synchronized with GitHub)",
value:"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_Fallback.ini"
},
{
label: "ACL4SSR_Online_Mini_MultiMode.ini Simplified version with automatic speed test, failover, and load balancing (synchronized with GitHub)",
value:"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_MultiMode.ini"
},
{
label: "ACL4SSR_Online_Full Full grouping for heavy users (synchronized with GitHub)",
value:"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full.ini"
},
{
label: "ACL4SSR_Online_Full_NoAuto.ini Full grouping without automatic speed test for heavy users (synchronized with GitHub)",
value:"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full_NoAuto.ini"
},
{
label: "ACL4SSR_Online_Full_AdblockPlus Full grouping for heavy users with more ad-blocking (synchronized with GitHub)",
value:"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full_AdblockPlus.ini"
},
{
label: "ACL4SSR_Online_Full_Netflix Full grouping for heavy users with complete Netflix access (synchronized with GitHub)",
value:"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full_Netflix.ini"
},
{
label: "ACL4SSR Local Default version with comprehensive grouping",
value: "config/ACL4SSR.ini"
},
{
label: "ACL4SSR_Mini Local Simplified version",
value: "config/ACL4SSR_Mini.ini"
},
{
label: "ACL4SSR_Mini_NoAuto.ini Local Simplified version + no automatic speed test",
value: "config/ACL4SSR_Mini_NoAuto.ini"
},
{
label: "ACL4SSR_Mini_Fallback.ini Local Simplified version + fallback",
value: "config/ACL4SSR_Mini_Fallback.ini"
},
{
label: "ACL4SSR_BackCN Local Return to China",
value: "config/ACL4SSR_BackCN.ini"
},
{
label: "ACL4SSR_NoApple Local No Apple diversion",
value: "config/ACL4SSR_NoApple.ini"
},
{
label: "ACL4SSR_NoAuto Local No automatic speed test ",
value: "config/ACL4SSR_NoAuto.ini"
},
{
label: "ACL4SSR_NoAuto_NoApple Local No automatic speed test & no Apple diversion",
value: "config/ACL4SSR_NoAuto_NoApple.ini"
},
{
label: "ACL4SSR_NoMicrosoft Local No Microsoft diversion",
value: "config/ACL4SSR_NoMicrosoft.ini"
},
{
label: "ACL4SSR_WithGFW Local GFW list",
value: "config/ACL4SSR_WithGFW.ini"
}
]
},
- Since the free Heroku account has only 550 hours of usage time per month, we need multiple accounts. Please refer to this article https://blog.imkcp.xyz/cf-workers/
Similarly, replace it with the CF Pages URL or a custom workers address.
Finally, deploy to your preferred static web service provider.