From 5d5357c57f7570dd2cdfafd0b72467d74103c86c Mon Sep 17 00:00:00 2001 From: infidel Date: Sat, 17 Dec 2022 01:45:33 +0700 Subject: [PATCH] Agile deployment method with docker --- Readme.md | 21 ++++++++++++++ wg_api/__pycache__/views.cpython-310.pyc | Bin 8854 -> 8908 bytes wg_api/__pycache__/views.cpython-311.pyc | Bin 19802 -> 20506 bytes .../__pycache__/reqs_handler.cpython-310.pyc | Bin 1771 -> 2099 bytes .../__pycache__/reqs_handler.cpython-311.pyc | Bin 2953 -> 3465 bytes wg_api/utils/reqs_handler.py | 26 ++++++++++++++++++ wg_api/views.py | 11 ++++---- wgweb/__pycache__/settings.cpython-310.pyc | Bin 2816 -> 2816 bytes wgweb/__pycache__/settings.cpython-311.pyc | Bin 3190 -> 3190 bytes wgweb/__pycache__/urls.cpython-311.pyc | Bin 2257 -> 2334 bytes wgweb/settings.py | 2 +- 11 files changed, 53 insertions(+), 7 deletions(-) create mode 100644 Readme.md diff --git a/Readme.md b/Readme.md new file mode 100644 index 00000000..a41eeb09 --- /dev/null +++ b/Readme.md @@ -0,0 +1,21 @@ +# Wireguard Backend + +## Code Structure +``` + ocp-wg-backend + -> wgweb # Your global configs + -> wg_api # Your shitty APIs + -> utils # Custom tools for custom tasks +``` +### Docker based deployment + +1. Create docker container with `docker build . -t wg-backend` +2. Run the docker with volume binding to apply realtime code changes. + ``` + docker run --rm -it -v $(pwd):/usr/src/app wg-backend + ``` + +## Future works + +- [ ] Implement `docker-compose` deployment method. +- [ ] diff --git a/wg_api/__pycache__/views.cpython-310.pyc b/wg_api/__pycache__/views.cpython-310.pyc index 284844bac1c1e18a84872bb4f0c1b5fcd48bf71c..623e733af41b458c69c5297a491402775ead255c 100644 GIT binary patch delta 1924 zcmZ`)&2Jk;6!)yXYsYw-G;y5Z#vgG?iSuESl;)!itw`depe6_6_TU2U#yfE~S$o6m zrY50L4ymdVwJKp~1g(S$;#h=)4@ig$LL5N+1&cT!@duPMJ@DST#KwfR_V;Gqdo%Ah z@4X!#q<=}vhAjJC@a*6CB%j%rBP6rm|L0V(FWX04s!MIt`-=nF0cRZ42aBm}in!)n zYP%Y`=~6>9uez%7NJPbAL6gPaC!6PEt&y@?)D>T3M>V~zlfQtoyR*}tCp7`P( z(#Ma>y%$d59!}g=9L)gOqHZXv$&#q(MTMlSuhWvs(x`C*B&F&Z=lHvF*NIxLFip0< zT)3jq@+G5SUglrPKaqT8^H{|r&Ee{ce57rH%yYf%@pKjyS8=;`R^!ozTI9jrLU0I( z=DMy~4kKh&ri{If#x%bgOr0LVp+hV9j20?XgdD;(ge3r5TF#Y}B4rByF1QzM;4N2q zPwN^jS?1SVZU2kh;@3h$!%ndUb^`Zt;s{P0JHY5WIY!NOqh!*$mKo>Yhl0%+0y+1< z8mY-Au-p8P(63TIZgG+S*l~HMc6xu^>7ArMk6b-VhPv61i2qi=*>Dg2{g%QC)XHg4 zIy`Lk*o|jIkF=^;i=w4iRN1d`v{mhTbflgovOA}O$w`VZemgN za_An`&X$VQS}{}>Mw?T^TFZE{ocFg^AU(`x9O+#l{C z_n{m?J{9g6tT7Q7e!KN`VIQHQZa@BEIMMvYVL8Nrzz!-ugkKX*R(lfNv0ZEtyTfEf z980tahd0?CABw!PqoL0{LNmfDLXCsmSivKjm~G&i>j+NomT^=|PfKI#IuVfx``G2` zb}=k+T|aN()T#4(I8wMA?Ruf{;9#+v%Y|7@w+o!MIL!oL3L~7GopG_@vg84H^IVI5N_KkxQXL$(1K=K zOtCbhWV>O;?!az!dGb{o#_0^_>%NP2r+yI};m76VBnjP;fr;&fU1k(Zu_gT0v~}B$ zGH(=%a39o_7=4?{1*8Eho?@->pUfu)h$Q$(NMMg(nmkweCbmMz43BqTi7||6htyT2 zR4`ISO;vSTRv1m?O}5OU{Dba9HU=&%j(&l8L!~<2Y>U*Y-o3ME%p=@FxQ%cR;Xc9v e0_NEXT}RfTJ7Psh delta 1894 zcmZ`(O>7%Q6y8~{*N(B1k~oR$)^_ZWQYW}cY3nqF{yI+7D*PsmMAX)Cyc2uL+Uw44 zY7#Y#M2ONNh*YM9suG9`w+JEm#sT%z1LA_XEfRto2P6bnM8$i%5E~PAwcmU5X6C(b z-g~p(WIxOX^gzHTz;p472Zi|EK!m({cj&h>L{J2!OB*Z?%?;UlPi1FU)m;Ypq8OA?mg58Yuo zfm8kbOZTFq#`z(+pQQOE`E17_ma zNn!=m%3`jdS1Pn%>MSX;VO%(}$7b|8$$#~PyT@?$6v7J#Pa_QRsCV$h|3*FyYtF)F zcmceE&m|GR#L&tH_?mYnwMRtjsai2pqJ^dN%Vy~n+$;igx>>gV#M>v4B##9SuMeOP zJ8max8343PLqhtcpX8svPnN-GK*M~e#}DLZGJz*$Mjn|aH(s8;e?&en-)k++&s zh}pAzwc@NwYg2mBn1!+N2%w!m4m=_Y^{w{0B%?Dn$YuTjRX;^a72gGY`XMb)MqY|v%}v|dBVA>;upc`;YXmnoa) zUkBffHhRE5K)^XbMpJ3UH0qpn|3Nl+rDtTuZU&JZKtFaI(T-#J8NHrk)TrtegSO_Q zqe#u%`D#^L$>^0uwRo98QY3I8w|Paj#eeVlULHh`ll;5h%j=C~_?nVo*JwXdmlkwo zr6n)_Etu`_4zBl^d4>#Bs5GA4$wKRqaYa^9&1tupH|YZ32@R2L{$n)Ae+g}`JM?h# zZ3IlFB~Rp4jVhMx1AuRD*@c@TxbLiE%VE`Qo336CI!Jmc#8A+5P&r z;fvxkPK)Al>>kUF&0;VOb(xmo;0C+H&qPkImvGG#LI;A1(BKegt>7L#%}m_0j9|C& z4b&Q`+1J|1c0^>tJ`#kuz_7?o?Y)9SyUweq&GQ4%g9EJxhZ(D*R-8~Zld`}2{BwRK zx)FN_Qw7M#?t^WP&6jh>2kWl11`ql&*Pjb zEx;{zifCWfwptP6z?wg?kUrSxb^D1|^pSRveT;ri)qjqa2+8o*;JJfUt?Mg|Llq58*xnrpgY`)KYeHjq(eLv@b;b@a_{k Kll<+(rN01>*q3Mk diff --git a/wg_api/__pycache__/views.cpython-311.pyc b/wg_api/__pycache__/views.cpython-311.pyc index e05b6ad99d8c0eb898ad44a46d6e5c6abc3876ab..f83f50354b9eefe0247a8b79392f269ed6cc0d03 100644 GIT binary patch delta 2377 zcma)7YfKbZ6rMY?JM3GOl?6q_1%X{;Z9zc5YAEFqR74PeQ0r!8hGk(NcxRAmtdNu# zoAhOGjn>!%qop-yn{*S?A5Cidw@I_xkj74H(m(zd(^t|oP0zWrx&+&#H@n}QIp^Ga zzI)D@dyT8)>H_h6>~=c@7#GieFnXl*qNjx1yjb%~Zz4DnB!VI+Me(}Cj*%T)_QvZI zp^*>~M4?AeHqHx5vFcis1YrsO<`~(@Z9cG-s099 zDI5|4Rq3SV7$H{njkU{R*r*x}pO}tMrVHio#O5lXO1A@?DG0)--&+wNv>KHjfWSIK z>ghUSNKsWcBu%HLsfLx<$7Jrcoz2@PNRU0Uml0dq<>(~7AWXa^&~{v;4Z+WWjXCQp z%dI6V!he7{!_V$I?~*+%;quiq;>2A5ng~!)VJ?U3pK;7YkH*xQ5D@ETORgB@9X3+W?iAPV3*fRmUJ*+B0Ss$A6;U+00~K|skRwx5 zYEq#GP-6iI$b7T(5cB$KiZOLYZkq>EQH@T5VmN)+chZsz_|xXUUGgEEJ-~jhZ6(8O zQ{Z;z2~>;%1UAw<4=-ww2UQU`0jo9@kLjEdvYSyU9Yf;*W)FrMn^5Gmyg6E^NFYQJ z#t|j}40$Y^j3iVVV-vv}rJT3hEKg@VrY3cbz5{Nbr>pB8$w0lhVWf8tC;}oa!!>ve zk;gDxR6QA{sy3BMYU=8$8|$Fb;f|@P`0376ax505@4?(7?2Cpf(w=_MFe%C*Tx@{# zHx19`bKqE&1D^U#;AL1&q?FTZ((!B^_=1x z6ltKPlpSm94d&U1bPGmYRV}&zil;?l-?mj+Z-C||`@O9WcIt>?eu{iiW z`5tb8>m4{(v{xlTm=ji9LfYG@OXhcN`yQ;91)Z?BT53HLBE0c&R+y03;SI%>*NARs zCtFG-QFpR?jhomTyFF~l?Vc@o;;M*>6eEieVF^z!J`~Gs>mn?+^mIYE8|3~oUO4k# zg!`akP>sgmh>z&8RML>(jb4U{tBPPVTQPr%TtPeUigJ`@u{U_e1Gz>lfK^_K=n+H4 z?>aVRIPf`|N+e>shTfPfGe`EBD6+t?pMl{o%+7HT=7irIg4L06RAepNmMz;dmTeC_ z8{V9_;=5Ls^;9o=s^@why8T&q)pDD=YOedi`qC>k+4cVA_5QiOhfd#zmTQiMu1^A) z%3ax#rsa~Rdj~Vl!K`y|**Tc84D!1m(4Ky~dz_H{?2n$KA}wcqy=7!8i}v~x6+nSs zV20~pN>Sr@=?tklzccs^z>j5q!0{7_fAsV^&cbhjVx{?p*4#XQ+V&(;%5+@aOTPve ztde#&{kV5OsZC^r|Mg?X`>KO}0vGDDa3T5_wZG;~1L;ruu8HBJq9D5O6Z>4rh2{&j zSyHr2itdx53@LgyobhhYlImqry&~Gk5LporA4`H*13G+q!5N?K`OPbG-oKgC*2i7*3T}nxR zNYbS035g6BqDqMprES!zIjmHvje6>(mr7Bpw$fgDsMKqz(o;`;Z)`9kt-A7le*1pr zee>R%xqX+|w~6OdS#}HX{P<`iDW6>T)RN)#BhTI-f-0y7^iZy2wu8$){b(*c8zzD% zj0)<(8-jXBtNFws2%p1Sd}bru<_BA?Rx#hXt>5GIk``uOXP7-C5y#6Vxk8LMx=OMJ zaxkQW+Z`i*1p*%mv=qs0jjq});Xj}l(ac(Ez8dU<5QW%s zHlK(rjzWd|HvUMs9oCXL?La^c~Hz)-})~*Nw3ve=a;2PjGSTb;duS5wIIzkE|jgSSfrBpnh z$Z0ggeh%GlKT3RO58T@a-(22QbWj$c?U@87*^ z|GeZcfS2u@E2t}bO7VRC`GOnh?=}+@^Jk%PxLv++1NH#}i4Px2TSk`=HEXi9ZppO? z);VjlyM@619`y#SpH93(yhW0@#4Usrd$Y&4i*6NdKs9H&(>PnoX=bLN(!*%u4J^-! zlQ+h$%&o-D!h)8kn8B`~K;^B3ZeStH3_aTni%p?-!FrRhXFZQO$3&=HIFZ(aail9o$kb%SoOk>UQ;%jh$W z;6d0-uKmmC()TdteFQ$St0rp4+LRApxD@5Q+ypid2c^JDFa|v zrs74?c1^wzSC`s;1*bc3w02J;ZMme$4ry;ge2roOr(|7M)_6Jr~*E zm8WtAbxGF-=wq-Fc#VX0X?&ctB%cWX^Sd?SW4}%84+RNa*U!U8=|55XSK0KM)p+h> P(JP!Kq<@Pezf%7J1?#Py diff --git a/wg_api/utils/__pycache__/reqs_handler.cpython-310.pyc b/wg_api/utils/__pycache__/reqs_handler.cpython-310.pyc index 87b6de4b8f73438bbeb10d18c05876f97b09d98b..e9ea12ce8c230685a18eb7670b86b1d8ead6a2df 100644 GIT binary patch delta 378 zcmXYr%}N6?6ovCYap=TiyHRu@Xkn=RL)?fvyY5DCQ4kp?LoH6HnobcUgNynCWmbYO zAwGsXm-7bV-nBR24fi|A$+;vy!AD)qgTO~nC&g?0<*(H)9{;Ksl&qndMekPm4EJ zpd4GY!Wcbx8o`s^=&5y^=l7?*-k{$-?so^}n5!&H9y@V5O|sm$-?)K0vMUMk V0o8FZa4>Q(ajPjcHixB_p#)?L6x1**1G-@~+#QSzJ(ej9KnJq0`&Fq;7G#yF&r2=WP0q#gd$#l6s3dzbIXksfZV(UJRs) z;}%OwVo72VH%LSdMCbsCTdbuZy+uYK0b>wh0wjt#fP?}R6xH(pdAB%Q xJj#kI8H)IT;zc|_;unWaZhlH>PO4pzK9I`@#Kk$2*?80V7^D~#K7a_YVgT`V7F_@U diff --git a/wg_api/utils/reqs_handler.py b/wg_api/utils/reqs_handler.py index f66403d9..d316f323 100644 --- a/wg_api/utils/reqs_handler.py +++ b/wg_api/utils/reqs_handler.py @@ -82,3 +82,29 @@ def req_ip_recommendation(): print(req_dump) return json.dumps(req_dump) + +def reg_bulk(data): + + inf_s = get_session() + req_url = 'http://10.30.1.138:5000/api/new-client' + + # req = inf_s.post(req_url, req_val) + + + for x in data: + + uname = x[0] + email = x[1] + code = x[2] + org = x[3] + + data = {"name":uname,"email":email,"code":code,"org":org} + # data = {"name":uname,"email":email,"allocated_ips":suggest_ips,"allowed_ips":allowed_ips,"extra_allowed_ips":[],"use_server_dns":true,"enabled":true,"preshared_key":true} + + print(data) + + + # ret_reg=$(curl -s --location --request POST 'http://10.30.1.138:5000/new-client' \ + # --header 'Content-Type: application/json' \ + # --cookie .tmp-cookie \ + # --data-raw '{"name":"'$uname'","email":"'$email'","allocated_ips":'$suggest_ips',"allowed_ips":["10.0.0.0/8", "192.168.100.0/24"],"extra_allowed_ips":[],"use_server_dns":true,"enabled":true,"preshared_key":true}' ) diff --git a/wg_api/views.py b/wg_api/views.py index 5e123559..06815db0 100644 --- a/wg_api/views.py +++ b/wg_api/views.py @@ -15,7 +15,7 @@ from .models import user_model from .utils.html_parser import get_logs, get_profiles import json from .utils.statistics import count_clients, count_traffic, count_connection, count_percentage, count_broken -from .utils.reqs_handler import req_edit_state, req_edit_user, req_apply_sys, req_ip_recommendation +from .utils.reqs_handler import req_edit_state, req_edit_user, req_apply_sys, req_ip_recommendation, reg_bulk from django.middleware.csrf import get_token from django.views.decorators.csrf import csrf_exempt @@ -26,8 +26,7 @@ class wgLogin(APIView): def get(self, request, format=None): # serializer = self.get_serializer(data=request.data) - # serializer.is_valid(raise_exception=True) - # user = serializer.validated_data['user'] + # serializer.is_valid(raise_exception=True) user = serializer.validated_data['user'] user = request.GET.get('username') password = request.GET.get('password') @@ -514,7 +513,7 @@ def wgBulkReg(request): print("-> Bulk Registration") RegData = json.loads(request.body) - for x in RegData: - print(x) + req_ip = req_ip_recommendation() + req_commit = reg_bulk(RegData) - return HttpResponse({"success"}, content_type='application') + return HttpResponse(json.dumps({"Reg":"Success"}), content_type='application') diff --git a/wgweb/__pycache__/settings.cpython-310.pyc b/wgweb/__pycache__/settings.cpython-310.pyc index 6d50c353b7377cfebe476e8693fa67b10feb6249..fc6c888bca8a99d416c933c1fdff96c5e7ccf7b8 100644 GIT binary patch delta 20 acmZn=YY^kk=jG*M0D{))nH#ykasdD>j|Cq9 delta 20 acmZn=YY^kk=jG*M0D|ShT^qT-asdDw{Ikp;g1 delta 20 acmew+@lAqzIWI340}w11?%K$m%>w{G#06>q diff --git a/wgweb/__pycache__/urls.cpython-311.pyc b/wgweb/__pycache__/urls.cpython-311.pyc index 446fe80da49407ebe1ea031d78e25b8c1bc7580d..a7485d0777bd908919d719eb685acf828b65e80e 100644 GIT binary patch delta 166 zcmca8I8R7@IWI340}%XKHzRomD+9x05C;bMp^VQF8`X`OxR@AHSyF^kIkTiDF^X}e z^F&Ffhy*ieif&F}QfKDpODxDV(l1YUD$U6bN=={K#p=u`Gx;3r3r@TutUt!Un+`(bRFUiZ#)W8jbMT$UW06X6&H~;_u delta 114 zcmbOybWu=!IWI340}%AqOiAu$Wng#=;=lkOl=0bOqq;E@S2}l;RElsggQm#l7AAG( x$-7yd7^NrwV|_9CBim#yC7@zPATBQ3+{bRiIQb5TF~2wuKT`uY2o@;-r2tez7@q(D diff --git a/wgweb/settings.py b/wgweb/settings.py index 12bb1506..02bca18c 100644 --- a/wgweb/settings.py +++ b/wgweb/settings.py @@ -25,7 +25,7 @@ SECRET_KEY = 'django-insecure-n(+d-xz5933rr363)v31jcdl^+#ab23&s317uxek+d*-_d6q99 # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True -ALLOWED_HOSTS = ["192.168.10.2", "127.0.0.1", "localhost:8000", "localhost:5000", "wg-django-backend-ma-wg.apps-crc.testing", "wg.nnag.me"] +ALLOWED_HOSTS = ["192.168.10.2", "127.0.0.1", "localhost:8000", "localhost:5000", "wg-django-backend-ma-wg.apps-crc.testing", "wg.nnag.me", "172.17.0.2"] # Application definition